如何使用ggplot2从两个数据帧制作单个图

时间:2019-04-28 05:34:09

标签: r ggplot2 visualization

我有2个数据集,分别称为A和B。 我想比较一个常见变量k的分布,该变量在两个数据集中都出现,但是长度不同(A包含2000个k值,而B包含1000个值,两者都有一些N / A)。因此,我想在同一图中绘制A $ k和B $ k的分布。

我尝试过:

g1 <- ggplot(A, aes(x=A$k)) + geom_density()
g2 <- ggplot(B, aes(x=B$k)) + geom_density()
g <- g1 + g2

但是随后出现错误:

Don't know how to add o to a plot.

我该如何克服这个问题?

2 个答案:

答案 0 :(得分:0)

在不知道实际数据集是什么样的情况下,我无法确切地告诉您这样做。但是将数据集合并为一组然后通过指定ggplot()或使用“颜色”来使用group是比较的一种方法。

另一种方法是使用grid.arrange()包中的gridExtra

gridExtra::grid.arrange(g1, g2)

这真的很容易,也很方便。如果您想进一步了解gridExtra软件包,请访问this official document

答案 1 :(得分:0)

由于我们没有任何数据,因此很难提供适合您情况的特定解决方案。但是下面是我认为您想做的一般原则。

诀窍是将数据放在一起,并在另一列中标识组A和组B。然后在aes()的{​​{1}}参数中使用此列。请记住,合并数据框可能不像我所做的那么简单,因为您可能会有一些额外的列等。

ggplot