我基本上想对图表后面的区域进行着色。
在线性比例下这很容易做到。
x <- 1:20
y <- x^2
plot(x, y, type="l")
polygon(c(10,10,15,15),
c(-100,600,600,-100),
col=rgb(0,1,0,0.3),border=FALSE)
产生这个:
但是一旦你把y放在对数刻度上,
plot(x, y, type="l", log="y")
polygon(c(10,10,15,15),
c(-100,600,600,-100),
col=rgb(0,1,0,0.3),border=FALSE)
没有显示任何内容。
最佳答案
使用log = "y"
时要小心。如果您的 y
值为负数,则会得到 NaN
。这正是这里发生的事情。尝试一下
plot(x, y, type="l", log="y")
polygon(c(10,10,15,15),
c(1e-7,600,600,1e-7), ## log(1e-7) is small enough
col=rgb(0,1,0,0.3),border=FALSE)
关于r - 如何在对数刻度中使用 `polygon()`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40340109/