使用 ggplot2 注释 R 中的矩形以获得对数刻度的图形

Car*_*ick 3 r annotate ggplot2

我正在尝试通过 ggplot2 在 R 中注释一个矩形,以获得对数刻度的图形。这是我要添加的注释层:

annotate("rect",xmin=293.3, xmax=312, ymin=-Inf, ymax=Inf, fill='gray')
Run Code Online (Sandbox Code Playgroud)

当然,我知道负无穷大会引起问题,因为它是对数标度并且没有负值。由于我预先指定了 y 尺度的限制,有人对如何使用此方法或其他方法创建“负无穷大”到无穷大矩形有任何想法吗?

Gre*_*gor 5

R 给出log(0)as -Inf,因此您可以在登录时使用ymin = 0来生成-Inf

内置数据演示:

ggplot(mtcars, aes(x = wt, y = mpg)) +
  annotate("rect", xmin = 2, xmax = 4, ymin = 0, ymax = Inf, fill = 'gray') +
  geom_point() +
  scale_y_continuous(trans = "log") 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述