如何在 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()
是列表对象的构造函数。这只会导致混乱。
您可以简单地使用 qplot
的 xlab
参数:
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")
我看到这段代码:
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()
是列表对象的构造函数。这只会导致混乱。
您可以简单地使用 qplot
的 xlab
参数:
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")