使用 drc 包在 ggplot 中绘制剂量反应曲线时出错

Error in plotting dose-response curve in ggplot with drc package

尝试使用 drc 包中的 ggplot 绘制剂量反应曲线时,我得到了一个半绘制的图表。我正在尝试按照剂量反应曲线 recent paper 的补充信息中给出的程序进行操作。 这是我的原始数据

请帮我找到解决办法,谢谢!

# Fit a log-logistic model with lower and upper asymptotic limits fixed at respectively 0 and 100

mod.Pyr <- drm(gi ~ conc, data = my_data, fct = LL.4(fixed = c(NA, 0, 100, NA)))

# new dose levels as support for the line

newdata <- expand.grid(conc=exp(seq(log(0.5), log(3000), length=1000)))

# predictions and confidence intervals

pm <- predict(mod.Pyr, newdata=newdata, interval="confidence")

# new data with predictions

newdata$p <- pm[,1]
newdata$pmin <- pm[,2]
newdata$pmax <- pm[,3]

# need to shift conc == 0 a bit up, otherwise there are problems with coord_trans

my_data$conc0 <- my_data$conc
my_data$conc0[my_data$conc0 == 0] <- 0.5

# plotting the curve

ggplot(my_data, aes(x = conc0, y = gi)) +
  geom_point() +
  geom_ribbon(data=newdata, aes(x=conc, y=p, ymin=pmin, ymax=pmax), alpha=0.2) +
  geom_line(data=newdata, aes(x=conc, y=p)) +
  coord_trans(x="log") +
  xlab("Concentration (mg/l)") + ylab("Growth inhibition")

您有 conc 个值高于 log(3000),并且您只为 log(100) 之前的值创建了 newdata,所以您要到 log(3000) 才能适合,您只需要将 expand.grid 中的 log(100) 增加到更高的值,例如 log(3000) :

newdata <- expand.grid(conc=exp(seq(log(0.5), log(3000), length=100)))