我正在为变量的不同类别创建直方图,并通过facet_wrap
, 和分隔它们scales = 'free'
。这适用于大多数类别,但对于其中一个类别,条形永远不会超过 1,因此刻度以 0.25 为间隔,这对于直方图来说没有意义。
有没有办法设置绘图以使中断之间的间隔永远不会低于 1?在其他一些类别中,该栏最高可达 300,因此我无法breaks
手动设置。
我无法共享数据,但制作了一个示例数据框:
class = c(rep(1,200), rep(2,200), rep(3,200))
x = c(rnorm(200, mean = 5, sd = 1), rnorm(200, 5, 4), rnorm(200, 5, 9))
df = data.frame(x, class)
df %>% ggplot(aes(x = x))+
geom_histogram(color = 'black', fill = 'steelblue', binwidth = 1)+
facet_wrap(~class, scales = 'free')
生成以下直方图: 示例直方图
假设在这个例子中,我不希望刻度间隔低于 10(因此类 2 和类 3 的图应该有,breaks = seq(0,100,10)
但希望这样做而不影响类 == 1 的图的比例。是否有怎么办?
您可以使用包
facetted_pos_scales
中的函数ggh4x
来实现此目的。因此,对于您的玩具示例: