如何在 R 中快速在多个直方图中添加 x 标签

How to add x label in multiple histograms quickly in R

我看到这段代码:

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

Paul Endymion 提出响应“在 R 中快速绘制多个直方图”。

我尝试了那个代码,它运行良好。但是,我不知道如何在该代码中添加 x 标签,因为所有直方图都被标记为 histdata[[col]]。你能帮帮我吗?

谢谢。

通过 xlab = names(mtcars)[col]) 您可以访问维度的名称

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

不要使用 list 作为变量名,因为 list() 是列表对象的构造函数。这只会导致混乱。

您可以简单地使用 qplotxlab 参数:

l <-lapply(1:ncol(mtcars), function(col) ggplot2::qplot(mtcars[[col]], geom = "histogram",binwidth = 1, xlab = names(mtcars)[col])) 
cowplot::plot_grid(plotlist = l)

但是,由于您使用的是 ggplot,从 tidyverse 开始的解决方案会更优雅:

library(tidyverse)

mtcars %>% 
  select_if(is.numeric) %>% 
  gather("var", "val") %>% 
  ggplot() + 
  geom_histogram(aes(val), bins = 10) +
  facet_wrap(~var, scales = "free")