如何使用具有离散轴值的geom_rect [英] how do I use geom_rect with discrete axis values
问题描述
我想绘制矩形,但我有一个x轴,它是离散值。如何将xmin和xmax值设置为离散值之间的点?
I would like to plot rectangles but I have an x axis that's discrete values. How do I set the xmin and xmax values to start at a point between the discrete values?
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))
这段代码绘制了一个矩形,但我想稍微向左移动它。我希望能够设置xmin =b-0.3和xmax =b+0.3,如果有意义的话。
This code plots a rectangle but I'd like to move it to the left a little. I kindof want to be able to set xmin = "b"-0.3 and xmax = "b"+0.3, if that makes sense.
推荐答案
您可以尝试:
You can try:
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)
这就好像你调用xmin和xmax等在 aes
调用之外,你可以使用任何你想要的。因素水平被用于绘制出来,因此 as.numeric
将确保您获得正确的结果。
This works, as if you call xmin and xmax etc outside of the aes
call, you can use whatever you want. The factor levels are used in the plot to plot them out, so as.numeric
will make sure you get the right one.
这篇关于如何使用具有离散轴值的geom_rect的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!