我到处寻找答案,但我找不到这个问题(也许我只是太愚蠢而无法使用其他答案,因为我是R的新手)。
我有两个不同行数的数据框。我想创建一个包含每个数据框一个条的图。两者应具有相同的长度,并且不同变量的数量应相互堆叠。例如:我想比较那些性别与数据集的比例。
t1<-data.frame(cbind(c(1:6), factor(c(1,2,2,1,2,2))))
t2<-data.frame(cbind(c(1:4), factor(c(1,2,2,1))))
1代表男性,2代表女性 我想创建两个彼此相邻的条形图,表示第一个数据框中的性别比例为2:4,第二个数据框中的比例为2:2。
我的尝试看起来像这样:
ggplot()+ geom_bar(aes(1,t1 $ X2,position =“fill”))+ geom_bar(aes(1,t2 $ X2,position =“fill”))
导致错误:“错误:stat_count()不得与y审美一起使用。”
答案 0 :(得分:1)
首先,我应该合并两个数据帧。您需要添加一个标识数据来源的变量,在两个数据框中添加一个带有ID的列(如t1和t2)。请记住,两个帧中的列名相同,因此您可以使用函数rbind。
t1$data <- "t1"
t2$data <- "t2"
t <- (rbind(t1,t2))
现在你可以制作情节:
ggplot(t[order(t$X2),], aes(data, X2, fill=factor(X2))) +
geom_bar(stat="identity", position="stack")