在R中使用ggplot绘制直方图矩阵

3

我是R语言的新手,一直在尝试使用“态度”数据集为每个列创建直方图。

我可以通过手动输入以下命令来实现:

par(mfrow=c(1,7)) hist(attitude$rating) hist(attitude$complaints) hist(attitude$privileges) hist(attitude$learning) hist(attitude$raises) hist(attitude$critical) hist(attitude$advance)

然而,我想使用一个单一的函数来绘制所有的直方图,可能使用ggplot。这是我在Stackoverflow上搜索后使用的命令:

ggplot(attitude, aes(x=variable)) + geom_histogram()

但似乎我做错了,因为我得到了这个消息:

Error in eval(expr, envir, enclos) : object 'variable' not found

我将感激任何关于此事的指导。谢谢。

1个回答

5

首先需要将态度数据转换为长格式,例如通过使用reshape2中的melt函数:

attitudeM <- melt(attitude)

接下来你可以按变量进行数据分面,并且自动为每个维度创建单独的直方图。

g <- ggplot(attitudeM,aes(x=value))
g <- g + geom_histogram()
g <- g + facet_wrap(~variable)
g

谢谢,那就是解决方案。 - user2762934

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