有没有一种方法可以使用 RStudio 将日志网格线添加到我的图形中?

Is there a way I can add log gridlines to my graph with RStudio?

我目前正在尝试使用 Rstudio 创建 剂量反应曲线 ,并且我正在使用 tidydrc 包。我想知道是否有办法添加次要网格线,因为 x-axislog

这是我目前得到的图片

这是我目前得到的代码:

tidydrc_plot(Nifedipinedrc,ed50=FALSE)  + 
  scale_x_log10() + 
  geom_errorbar(aes(ymin=g$Nifedipine-g$SD, ymax=g$Nifedipine+g$SD, x=Nifedipinedrc[[1]][[1]]$d, y=Nifedipinedrc[[1]][[1]]$r)) +
  ggtitle("graph") +
  labs(x="Concentration", y= "Force")

我知道这绝对是一团糟的代码,但我完全是自学的,我觉得我在这方面遇到了一些困难,因为我目前并不真正理解很多指南在堆栈上。

这是一个函数,您可以将其用于对数刻度的 minor_breaks 参数。提议的函数使用了 ggplot2 中未导出的函数,所以我有点作弊。不过,这可能只适用于 log10 轴,您可能希望通过 theme() 设置进一步强调主要网格线。

library(ggplot2)

# A function factory for minor log breaks
minor_breaks_log <- function(base) {
  # Prevents lazy evaluation
  force(base) 
  # Wrap calculation in a function that the outer function returns
  function(limits) {
    ggplot2:::calc_logticks(
      base = base, 
      minpow = floor(log(limits[1], base = base)), 
      maxpow = ceiling(log(limits[2], base = base))
    )$value
  }
}

ggplot(msleep, aes(bodywt, brainwt)) +
  geom_point() +
  scale_y_log10(minor_breaks = minor_breaks_log(10)) +
  scale_x_log10(minor_breaks = minor_breaks_log(10))
#> Warning: Removed 27 rows containing missing values (geom_point).

reprex package (v0.3.0)

于 2020 年 12 月 2 日创建