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

问题描述

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

raw data

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

# 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,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,y=p)) +
  coord_trans(x="log") +
  xlab("Concentration (mg/l)") + ylab("Growth inhibition")

enter image description here

解决方法

您的 conc 值高于 log(3000),并且您只为 newdata 之前的值创建了 log(100),因此您在 log(3000) 之前无法适应,您只需要将 expand.grid 中的 log(100) 增加到更高的值,例如 log(3000) :

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

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...