我ggplot2用来创建一些相当简单的散点图.我目前使用两条简单的垂直线:
... + geom_vline(xintercept=159684.186,linetype="dotted",size=0.6)+
geom_vline(xintercept=159683.438,linetype="dotted",size=0.6)+ ...
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何遮蔽从Y轴顶部到X轴这两条线之间的区域?
Bri*_*ggs 48
你可以用geom_rect.
... + geom_rect(aes(xmin=159683.438, xmax=159684.186, ymin=0, ymax=Inf))
Run Code Online (Sandbox Code Playgroud)
x的两个值来自您的geom_vline调用.使用ymin=0将其降至0; ymax=Inf将它一直带到轴的顶部.如果您希望它一直向下到x轴而不是0,您可以使用ymin=-Inf.
一些说明:
如果它早在geoms的顺序,那么它最好在它的第一个/下面绘制(特别是散点图数据).
您可以将调用fill之外的填充颜色(美学)aes设置为固定值.我还将透明度(alpha)设置为0.5,以便它背后的东西(网格线,很可能,如果你把它作为第一个geom)仍然可以看到.
Jam*_*mes 20
annotate()如果您知道要遮蔽的区域的坐标,则可能更容易使用它.我尝试使用时遇到了一些奇怪的渲染问题geom_rect().
library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() +
annotate("rect", xmin = 3, xmax = 4.2, ymin = 12, ymax = 21,
alpha = .2)
Run Code Online (Sandbox Code Playgroud)
我知道这基本上是一回事; 我刚从这里偶然发现了这个故事.