R:如何从多列频率数据创建条形图?
R: How to create a barplot from a multi-column frequency data?
假设我有如下数据集,
ID Class
a Class_1
a Class_1
b Class_1
b Class_1
b Class_1
c Class_2
c Class_2
c Class_2
d Class_2
d Class_2
d Class_2
e Class_3
f Class_3
我要展示,有
Class_1 有 2 名学生,
Class_2 和 2 名学生
barchart 中 Class_3 的 2 名学生使用 ggplot()
感谢您抽出时间。谢谢。
假设您在上面提供的数据位于名为 dat
:
的数据框中
library(ggplot2)
ggplot(dat, aes(x = Class)) + geom_bar()
应该可以。 geom_bar
的默认值是获取频率。
d <- data.frame(ID = c(letters[c(1,1,2,2,2,3,3,3,4,4,4,5,6)]),
Class = c(rep("Class_1", 5), rep("Class_2", 6), "Class_3", "Class_3"))
如果要显示因子数的信息
p <- ggplot(d, aes (x = Class, fill = ID) ) + geom_bar(position="fill")
plot(p) # check the number of breaks and use it as length
p + scale_y_continuous(label=seq(0, 2, length=5))
# Hoom, something strange ?
不需要
ggplot(d[! duplicated(d),], aes (x = Class, fill = ID) ) + geom_bar()
假设我有如下数据集,
ID Class
a Class_1
a Class_1
b Class_1
b Class_1
b Class_1
c Class_2
c Class_2
c Class_2
d Class_2
d Class_2
d Class_2
e Class_3
f Class_3
我要展示,有 Class_1 有 2 名学生, Class_2 和 2 名学生 barchart 中 Class_3 的 2 名学生使用 ggplot()
感谢您抽出时间。谢谢。
假设您在上面提供的数据位于名为 dat
:
library(ggplot2)
ggplot(dat, aes(x = Class)) + geom_bar()
应该可以。 geom_bar
的默认值是获取频率。
d <- data.frame(ID = c(letters[c(1,1,2,2,2,3,3,3,4,4,4,5,6)]),
Class = c(rep("Class_1", 5), rep("Class_2", 6), "Class_3", "Class_3"))
如果要显示因子数的信息
p <- ggplot(d, aes (x = Class, fill = ID) ) + geom_bar(position="fill")
plot(p) # check the number of breaks and use it as length
p + scale_y_continuous(label=seq(0, 2, length=5))
# Hoom, something strange ?
不需要
ggplot(d[! duplicated(d),], aes (x = Class, fill = ID) ) + geom_bar()