如何在对数比例中使用`polygon()`?

时间:2016-10-31 10:10:26

标签: r plot polygon

我基本上想要遮盖图表背后的区域。

以线性比例很容易做到。

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)

产生这个:

enter image description here

但是一旦你将 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)

什么都没有出现。

enter image description here

1 个答案:

答案 0 :(得分:0)

使用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)

enter image description here