r - 如何在对数刻度中使用 `polygon()`?

标签 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

最佳答案

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

关于r - 如何在对数刻度中使用 `polygon()`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40340109/

相关文章:

javascript - 在 Google Maps V3 中将 MapLabel 放置在多边形之上

r - 匿名函数中的rlang::sym

r - 在 R 中有效地打包和解包函数参数

Matlab,如何调整图形上的轴值(科学记数法 - 精度不够)

r - 绘制 R 中的哪个参数?

matlab - 曲面图顶部的散点图有乱码

r - 这在 Rcpp 中是否正确?

python - 生成彩票号码 - 将 R 语句转换为 Python

java - 使用UTM坐标计算面积的精确方法

java - 将图像绘制为多边形