我想绘制矩形,但我有一个离散值的x轴。我如何设置xmin和xmax值从离散值之间的一个点开始?
library(ggplot2)
df <- data.frame(x = c("a","b","c"), y = c(1,2,3))
ggplot(data = df, aes(x,y)) +
geom_point() +
geom_rect(data = NULL, aes(
xmin = "b", xmax = "c", ymin = 1.5, ymax = 2.5
), color="red", fill = NA)
字符串
的数据
这段代码绘制了一个矩形,但我想把它向左移动一点。我有点想能够设置xmin = "b"-0.5
和xmax = "b"+0.5
,如果这有意义的话。
2条答案
按热度按时间0g0grzrc1#
您可以尝试:
字符串
这就像你在
aes
调用之外调用xmin和xmax等一样,你可以使用任何你想要的。因子水平被用在图中来绘制它们,所以as.numeric
会确保你得到正确的因子水平。5rgfhyps2#
是的,“B”+ 0.5是有意义的,但只有在“B”通过一个尺度转换为一个数字之后才能做到这一点。这可以通过在
aes
的theticsMap中使用xmax = stage(., after_scale = xmax + 0.5)
来实现:字符串
(Note,当矩形由
data
定义时,这也可以工作。x1c 0d1x的数据
创建于2023-11-08带有reprex v2.0.2