来自两个数据帧的一个ggplot(每个1 bar)

时间:2016-07-31 15:05:30

标签: ggplot2 geom-bar

我到处寻找答案,但我找不到这个问题(也许我只是太愚蠢而无法使用其他答案,因为我是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审美一起使用。”

1 个答案:

答案 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")