【发布时间】:2019-07-04 16:05:17
【问题描述】:
clip 函数有助于在基本图形中设置剪切区域。例如,如果我在 2-d 中模拟了一些观察值,我可以通过以下方式仅绘制第 4 象限中的观察值:
dataset <- data.frame(x = runif(n = 100, min = -1, max = 1),
y = runif(n = 100, min = -1, max = 1))
plot(x = dataset, type = "n")
abline(h = 0, v = 0)
usr <- par('usr')
clip(x1 = 0, x2 = 1, y1 = -1, y2 = 0) # limits are sufficient for this toy example
points(x = dataset, pch = "x")
do.call(clip, as.list(x = usr))
由reprex package (v0.3.0) 于 2019 年 7 月 4 日创建
我怎样才能在ggplot2 中做同样的事情?我当然可以先过滤观察结果,但我正在寻找直接的替代方案。
【问题讨论】:
-
在我看来,它在有条件地对图形的某些部分进行着色时非常有用。我知道this post,但在某些情况下,它可能不适用。
-
不确定是否有专门的解决方案。您可以在点的顶部使用多个
geom_rect()(geom_rect(aes(xmin = -1, xmax = 0, ymin = -1, ymax = 1), fill = "grey90")等等......),但这很快就会变得非常混乱......过滤数据可能是最好的方法。