如何在R中在同一张图上绘制并排直方图?

20

这实际上应该非常简单,但我很难找到解决此问题的方法。

我有两个非常简单的数值向量在R中。我只是想用它们绘制一个直方图。然而,我希望它们在同一张图上。棘手的部分是R默认重叠这两个直方图。我希望这些柱状体简单地并排,以便更好地视觉化数据。

基本上,这就是我想做的。

进入图像说明

我对R和统计计算语言都还不太熟悉,所以如果您能回答我的令人沮丧的问题,我会非常感激。

2个回答

18

这个示例来自于使用plotrix包。代码可以在这里找到。您需要先安装该包,然后才能访问multihist函数。

#install.packages("plotrix")
require(plotrix)

l <- list(rnorm(50),rnorm(50,sd=2),rnorm(50,mean=3))
multhist(l)

在此输入图片描述


14

这是此图的ggplot版本。

require(ggplot2)
require(reshape2)

set.seed(1)
df <- data.frame(x = rnorm(n = 1000, mean = 5, sd = 2),
                 y = rnorm(n = 1000, mean = 2),
                 z = rnorm(n = 1000, mean = 10))



ggplot(melt(df), aes(value, fill = variable)) + geom_histogram(position = "dodge")

输入图像描述


这是另一种方法,但不完全符合OP的要求。 - Jilber Urbina
2
@Jiber 你说得对,谢谢。但是OP说:“我希望箱子只是简单地并排放置,这样我可以更好地可视化数据”,因此有提出类似可视化方案的空间。 - dickoa
我认为转换为 geom_freqpoly 可能会更有效。 - hadley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接