在R中快速绘制多个直方图

时间:2017-07-28 14:24:18

标签: r plot ggplot2 histogram

对于探索性分析,它通常可用于在一个网格中快速绘制多个变量。一个简单的方法是:

data(mtcars)    
hist(mtcars[,c(1,2,3,4)])

enter image description here

然而,调整断裂和轴以保持一致性变得很困难,即

hist(mtcars[,c(1,2,3,4)], breaks = 10)

不影响直方图。在ggplot2中是否可以轻松解决此问题或一种简单的方法?

2 个答案:

答案 0 :(得分:4)

这是使用hist()

的方法
lapply(mtcars[1:4], FUN=hist)

但是我更喜欢使用ggplot2在R对象中存储绘图,并使用cowplot::plotgrid()显示绘图列表:

list <-lapply(1:ncol(mtcars),
              function(col) ggplot2::qplot(mtcars[[col]],
                                           geom = "histogram",
                                           binwidth = 1))

cowplot::plot_grid(plotlist = list)

答案 1 :(得分:1)

使用ggplot2,您可以使用facet_wrap根据其他变量创建网格。

例如:

library(ggplot2)

data(mtcars)

ggplot(data = mtcars) +
    geom_histogram(aes(x = mpg), bins = 4, colour = "black", fill = "white") +
    facet_wrap(~ gear)

example histogram with facets

您可以使用bins参数轻松设置所需的休息时间。