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的高度是绝对的。
编辑
为了与x
和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))
我在绘图中有一个 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的高度是绝对的。
编辑
为了与x
和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))