问题描述
我正在尝试使用 annotate_custom
在我的绘图之外创建线条以将我的轴分成多个部分。我知道 this post 提出了类似的问题,但出于某种原因,使用负值作为线的最小值不会将线延伸到图之外。
示例代码:
library(ggplot2)
library(grid)
data("iris")
ggplot(iris,aes(x=Species,y=Petal.Width)) +
geom_bar(stat='identity')+coord_flip()+
annotation_custom(grob = linesGrob(),xmin = 2.5,xmax = 2.5,ymin = -90,ymax = 0)+
annotation_custom(grob = linesGrob(),xmin = 1.5,xmax = 1.5,ymax = 0)
解决方法
默认情况下,设置不允许任何图形元素剪裁到绘图区域之外。您可以通过任何 coord_*
函数(例如 coord_cartesian()
、coord_fixed()
...)关闭剪辑,因此在您的情况下,请使用 coord_flip(clip="off")
以允许 grobs 扩展情节中的任何地方:
ggplot(iris,aes(x=Species,y=Petal.Width)) +
geom_bar(stat='identity')+coord_flip(clip='off')+
annotation_custom(grob = linesGrob(),xmin = 2.5,xmax = 2.5,ymin = -90,ymax = 0)+
annotation_custom(grob = linesGrob(),xmin = 1.5,xmax = 1.5,ymax = 0)