如何将geom_rect与离散轴值一起使用

Mis*_*ist 11 r ggplot2

我想绘制矩形,但我的x轴是离散值.如何将xmin和xmax值设置为从离散值之间的某个点开始?

library(ggplot2)
df <- data.frame(x = c("a","b","c"), y = c(1,2,3))
ggplot(data = df) + geom_rect(data = NULL, aes(xmin = "b", xmax = "c", ymin = 1.5, ymax = 2.5))
Run Code Online (Sandbox Code Playgroud)

这段代码绘制了一个矩形,但我想将它向左移动一点.我有点想设置xmin ="b"-0.3和xmax ="b"+0.3,如果这有意义的话.

jer*_*ycg 12

你可以试试:

ggplot(data = df) +
  geom_rect(data = df, aes(x = x, y=y), xmin = as.numeric(df$x[[2]]) - 0.3,
                                        xmax = as.numeric(df$x[[3]]) + 0.3,
                                        ymin = 0, ymax = 2)
Run Code Online (Sandbox Code Playgroud)

这很有效,就像你在通话之外调用xmin和xmax等一样aes,你可以使用你想要的任何东西.在图中使用因子水平来绘制它们,因此as.numeric将确保您获得正确的因子水平.