如何在R中绘制多个分类变量

时间:2016-08-31 06:56:17

标签: r plot ggplot2 bar-chart

我的数据集包含几个分类变量,我想通过这些变量来查看分布。

例如,如果我想在ggplot2中的mpg数据集中可视化4个变量(manufacturer,trans,fl,class),我必须编写4行代码:

ggplot(mpg, aes(manufacturer)) + geom_bar() + coord_flip()
ggplot(mpg, aes(trans)) + geom_bar() + coord_flip()
ggplot(mpg, aes(fl)) + geom_bar() + coord_flip()
ggplot(mpg, aes(class)) + geom_bar() + coord_flip()

结果条形图:

enter image description here

如何编写代码以更有效地执行此操作?环?应用功能?如果可能的话,我想一次看一张图表。

1 个答案:

答案 0 :(得分:3)

您使用lapply的想法是一种解决方案。

这需要aes_string代替aes

单个地块

这会创建您作为lapply的第一个参数提供的每列(名称)的单个图:

lapply(c("manufacturer", "trans", "fl", "class"),
  function(col) {
    ggplot(mpg, aes_string(col)) + geom_bar() + coord_flip()
  })

合并图

如果您需要在一个绘图区域中使用所有绘图,则可以使用miscset::ggplotGrid

library(miscset) # install from CRAN if required
ggplotGrid(ncol = 2,
  lapply(c("manufacturer", "trans", "fl", "class"),
    function(col) {
        ggplot(mpg, aes_string(col)) + geom_bar() + coord_flip()
    }))

结果如下:

enter image description here

相关问题