当前,我有一些带有估计值和上下限的数据,我希望将其绘制为CI。但是,我的一些估计没有上限。当我尝试绘制CI时,它会删除整个CI,而不仅仅是上限。我仍然希望绘制下限。有没有办法绘制下限,即使没有上限也是如此。 ggplot2
或基本plot
的答案都可以。
这是错误
警告消息:删除了1个包含缺失值的行 (geom_errorbar)。
数据
structure(list(trials2 = c("A", "B"), surv = c(9.4, 18.4), drug_site2 = c("Site X",
"Site X"), lower = c(5.7, 17.3), upper = c(13.8, NA)), row.names = c(NA,
-2L), class = "data.frame")
情节
ggplot(data = survs2)+
geom_point(aes(x=drug_site2,y=surv,color=trials2),size=3)+
geom_errorbar(aes(x = drug_site2,ymin = lower, ymax = upper,color=trials2))+
coord_flip()+
scale_y_continuous("Median Survival (Months)", limits = c(0,60))+
scale_x_discrete("")
更新:这是论文中报告的结果
摘自文字:
中位生存时间为18.4(95%CI,17.3,NR)和13.6(95%CI, 在药物和安慰剂组中分别为11.3至15.8)个月。
答案 0 :(得分:0)
我找到了解决问题的方法。经过以上讨论,我仍然认为显示下限而不显示上限很重要。 “未报告”与“未达到上限”不同,我认为这是一个真正的缺失值/根本未报告(无论出于何种原因)。
解决方法是使用两次geom_linerange
,以从下至估计范围再跨一次,然后从估计到上限。下界在那里,只是很小。
ggplot(data = survs2)+
geom_point(aes(x=drug_site2,y=surv,color=trials2),size=3)+
geom_linerange(aes(x = drug_site2, ymin = lower, ymax = surv, color = trials2))+
geom_linerange(aes(x = drug_site2, ymax = upper, ymin = surv, color = trials2))+
coord_flip()+
scale_y_continuous("Median Survival (Months)", limits = c(0,60))+
scale_x_discrete("")