首页 > 解决方案 > 使用 drc 包在 ggplot 中绘制剂量反应曲线时出错

问题描述

尝试使用 drc 包中的 ggplot 绘制剂量反应曲线时,我得到了一个半绘图图。我正在尝试遵循最近一篇关于剂量反应曲线的论文的补充信息中给出的程序。这是我的原始数据

原始数据

请帮助我找到解决方案,谢谢!

# 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")

在此处输入图像描述

标签: rggplot2drc

解决方案


您有conc上面的值,log(3000)并且您只newdata为值创建 untillog(100)所以您无法适应 until log(3000),您只需要将log(100)expand.grid 增加到更高的值,例如log(3000)

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

在此处输入图像描述


推荐阅读