首页 > 解决方案 > 如何在R中的一个图中绘制多个直方图

问题描述

我需要在一张图片中绘制数据框中的所有列(特征),但要分开绘制。这是示例:

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

cowplot::plot_grid(plotlist = list)

情节不错,但缺少每个功能的名称,所有人都只是“mtcars [[col]]”。我尝试colnames(data)改用mtcars[[col]],但没有成功。任何人都可以帮助我,如何命名我的情节中的每个特征。

标签: rggplot2

解决方案


尝试将数据重新整形为长格式并使用facet_wraporfacet_grid代替。

library(tidyverse)
mtcars %>% 
     gather() %>% 
     ggplot(aes(x=value)) + geom_histogram(binwidth = 1) + facet_wrap('key', scales='free')

reprex 包(v2.0.1)于 2021-08-08 创建


推荐阅读