ggplot2 geom_segment 大小可以指定为轴大小的比例吗?

Can ggplot2 geom_segment size be specified as a proportion of the axis size?

我在绘图中有一个 geom_segment 并且希望它的大小相对于 y 轴缩放。

例如:

iris %>%
  group_by(Species) %>%
  summarise(avg_sepal_length = mean(Sepal.Length)) %>%
  ggplot(aes(x = Species, y = avg_sepal_length)) +
  geom_bar(stat = "identity") +
  geom_segment(aes(x = 0.5, y = 10, xend = 3.5, yend = 10), size = 20)

在 y=10 处的条形图上方生成水平段,固定大小为 20(我认为是毫米)。但是,当您调整图大小时,无论图的大小或轴的尺寸如何,它都会保持 20。

我试过使用 scale_size_continuous() 但似乎无法获得我正在寻找的结果。

有没有办法设置大小,以便在绘图大小更改时更改大小?

编辑: 附上200x200和1000x1000的export,可以看到segment的高度比例没有保持,segment的高度是绝对的。

编辑

为了与xy保持一致,您可能想尝试:

library(ggplot2)
iris %>%
  group_by(Species) %>%
  summarise(avg_sepal_length = mean(Sepal.Length)) %>%
  ggplot(aes(x = Species, y = avg_sepal_length)) +
  geom_bar(stat = "identity") +
  geom_rect(aes(xmin = 0.5, xmax = 3.5, ymin = 10 - 0.5, ymax = 10 + 0.5))