Facet_wrap 具有不同 binwidth 值的直方图

问题描述 投票:0回答:1

我想用相同的数据制作一系列直方图,并用不同的箱数值来包装直方图。以

palmerpenguins::penguin
数据集为例:

library(palmerpenguins)
library(data.table)
library(ggplot2)
dt <- data.table(palmerpenguins::penguins)

ggplot(dt, aes(x = body_mass_g)) +
geom_histogram(bins = 3)

ggplot(dt, aes(x = body_mass_g)) +
geom_histogram(bins = 5) 

产生预期的图:

Palmer penguin body mass histogram with 3 bins

Palmer penguin body mass histogram with 5 bins

我想要做的是对一系列这些进行分面包装,其中箱的数量递增或由某些变量控制。我想我以前见过用

ggplot() + geom_histogram() + facet_wrap()
的单个实例完成此操作,其中
facet_wrap()
有一个带有某些序列的参数,但我不确定我是否记错了。

r ggplot2 facet-wrap
1个回答
0
投票

我们可以使用

seq
影响和特定的
length.out
作为中断。

> dt <- data.table::data.table(palmerpenguins::penguins)
> breaks <- 2:10
> par(mfrow=c(3, 3))
> for (i in breaks) {
+   with(dt, hist(body_mass_g,
+                 breaks=do.call('seq.int', 
+                                c(as.list(range(dt$body_mass_g, na.rm=TRUE)), 
+                                  list(length.out=i + 1L))),
+                 main=sprintf('%s bins', i)))
+ }

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.