如何仅更改特定区域的图的背景颜色?
例如,从x = 2到x = 4?

额外的问题:x和y坐标的组合也可能吗? (例如从(1,2)到(3,4))?

非常感谢!

最佳答案

这可以通过考虑与您的描述有些不同的情节来实现。基本上,您想在x轴上的所需位置之间绘制一个彩色矩形,以填充整个y轴限制范围。这可以使用rect()来实现,并请注意,在下面的示例中,我如何获取当前图的用户(usr)坐标,以在y轴上给我限制,并且我们绘制这些限制以超出确保整个范围都覆盖在图中。

plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes
lim <- par("usr")
rect(2, lim[3]-1, 4, lim[4]+1, border = "red", col = "red")
axis(1) ## add axes back
axis(2)
box()   ## and the plot frame


如果我们提供坐标向量,rect()可以绘制一系列矩形,并且可以轻松处理红利的任意x,y坐标的情况,但对于后者,如果您以a开头,则更容易避免错误X坐标和Y坐标的另一个向量,如下所示:

X <- c(1,3)
Y <- c(2,4)
plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes
lim <- par("usr")
rect(X[1], Y[1], X[2], Y[2], border = "red", col = "red")
axis(1) ## add axes back
axis(2)
box()   ## and the plot frame


您可以像获得奖金一样轻松获得数据:

botleft <- c(1,2)
topright <- c(3,4)
plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes
lim <- par("usr")
rect(botleft[1], botleft[2], topright[1], topright[2], border = "red",
     col = "red")
axis(1) ## add axes back
axis(2)
box()   ## and the plot frame

关于r - R:仅针对特定区域更改绘图的背景颜色(基于x值),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8741013/

10-12 23:31