我想用相同的数据制作一系列直方图,并用不同的箱数值来包装直方图。以
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)
产生预期的图:
我想要做的是对一系列这些进行分面包装,其中箱的数量递增或由某些变量控制。我想我以前见过用
ggplot() + geom_histogram() + facet_wrap()
的单个实例完成此操作,其中 facet_wrap()
有一个带有某些序列的参数,但我不确定我是否记错了。
我们可以使用
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)))
+ }