我想知道是否有一种简单的方法只为绘图区域着色?我相信par()$bg
设置定义了整个设备背景的颜色,因此我一直在应用低级绘图命令polygon
向整个绘图区域添加彩色矩形。
#colored device background
x11()
par(bg="grey90")
plot(x=1, y=2)
grid(col="white", lty=1)
points(x=1, y=2)
#colored plot area only
x11()
plot(x=1, y=2)
usr <- par()$usr
polygon(x=c(usr[1], usr[1], usr[2], usr[2]), y=c(usr[3], usr[4], usr[4], usr[3]), col="grey90")
grid(col="white", lty=1)
points(x=1, y=2)
这可能是唯一的方法,但如果在par
设置中有更简单的方法,我很想知道。提前感谢任何建议。
答案 0 :(得分:6)
我非常肯定,没有任何标准可以说,它本身就可以做你想做的事。
这里虽然比你的方法更简单。它使用plot.default()
的{{1}}参数在背景中绘制以原点为中心的单个巨大填充点。这个点的范围至少是每个方向的googol立方单位,我已经确认这适用于R的原生Windows绘图设备,以及pdf和png设备:它似乎是一个非常通用的解决方案。
panel.first
## Your example
plot(x=1, y=2,
panel.first={points(0, 0, pch=16, cex=1e6, col="grey90")
grid(col="white", lty=1)})
## Or, for repeated use, make it a function:
ggbg <- function() {
points(0, 0, pch=16, cex=1e6, col="grey90")
grid(col="white", lty=1)
}
plot(x=1, y=2, panel.first=ggbg())