剧情以数据帧的直方图每一列使用ggplot在一个页面上(Plot every column in a

2019-07-02 10:04发布

我想用一个页面上的直方图绘制一个data.frame中的每一列。 下面是使用附带R中的样品“钻石”数据集的例子:

p = list()
for (i in 1:ncol(diamonds)) p[[i]] <- qplot(diamonds[,i], xlab=names(diamonds)[[i]])
do.call(grid.arrange, p)

这确实情节中的所有列,但数据看起来在每一个相同的。 因此,一些显然是错误的。

这是该任务的正确方法吗? 我敢肯定,我有一个分配相同的列数据集列表中的每个元素一些无聊的语法地方,但我不知道它是什么。

谢谢

Answer 1:

干得好:

library(reshape2)
library(ggplot2)
d <- melt(diamonds[,-c(2:4)])
ggplot(d,aes(x = value)) + 
    facet_wrap(~variable,scales = "free_x") + 
    geom_histogram()

melt ING允许我们使用所得到的分组变量(称为variable )将数据分割成组,并绘制为每一个的直方图。 注意使用的scales = "free_x" ,因为每个变量具有显着不同的范围和比例。



文章来源: Plot every column in a data frame as a histogram on one page using ggplot
标签: r ggplot2