首页 > 解决方案 > 可以将 ggplot2 geom_segment 大小指定为轴大小的比例吗?

问题描述

我在图中有一个 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的导出,可以看到段高比例没有保持,段的高度是绝对的。

200x200 1000x1000

标签: rggplot2aestheticsgeom-segment

解决方案


编辑

为了与xand保持一致y,您可能需要尝试:

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))

在此处输入图像描述

在此处输入图像描述


推荐阅读