使用stat_histinterval垂直对齐条柱

a2mppw5e  于 2024-01-03  发布在  其他
关注(0)|答案(1)|浏览(88)

我试图创建一个多面图,在同一个面中显示多个组密度分布和直方图,但在自定义直方图上的条柱时遇到了问题,这些条柱是使用stat_histinterval创建的。我已将条柱宽度更改为在各图中保持一致(breaks = breaks_fixed(width = .2)),但请注意,在左下角,bin具有不同的对齐方式。我知道stat_histinterval有对齐参数,但是它们似乎不是垂直工作的。谁能帮我把这些箱子对齐,或者是起始值,或者是居中值?
下面是我的代码:

library(ggplot2)
library(ggdist)

data <- mtcars
data$cyl <- as.factor(data$cyl)
ggplot(data, aes(y = wt , col = cyl, group = cyl, fill = cyl))+
  stat_halfeye(
    slab_color = "gray45",
    alpha = .2
  ) +
  stat_histinterval(
    slab_type = "histogram",
    slab_color = "gray45",
    side = "left",
    alpha = .2,
    outline_bars = TRUE,
    breaks = breaks_fixed(width = .2)
  ) +
  facet_grid(vs ~ am) +
  labs(x = "Density")

字符串

kmb7vmvb

kmb7vmvb1#

align无论几何体是水平的还是垂直的都应该工作。在你的例子中,这都可以工作:

library(ggplot2)
library(ggdist)

data <- mtcars
data$cyl <- as.factor(data$cyl)
ggplot(data, aes(y = wt , col = cyl, group = cyl, fill = cyl))+
  stat_halfeye(
    slab_color = "gray45",
    alpha = .2
  ) +
  stat_histinterval(
    slab_color = "gray45",
    side = "left",
    alpha = .2,
    outline_bars = TRUE,
    breaks = breaks_fixed(width = .2),
    align = align_boundary(at = 0)
  ) +
  facet_grid(vs ~ am) +
  labs(x = "Density")

字符串


的数据
(我也从你对stat_histinterval()的调用中删除了slab_type = "histogram",因为它已被弃用)。

相关问题