如何在 ggplot2 折线图中制作半胡须?

How to make half-wiskers in a ggplot2 line graph?

我在 R 方面的进步非常缓慢,但现在我可以做一些事情了。
现在我在一张图中绘制了 4 种处理对植物生长的影响。如您所见,错误栏重叠,这就是我将它们设为不同颜色的原因。我认为为了使图表更清晰,最好将较低的误差线用作较低的 2 行的 "half wiskers",以及顶部的两行的较高误差线(就像我现在所做的那样),请参阅附图以供参考

我现在的脚本设置方式可行吗?
这是我的情节脚本的一部分,我还有很多但是这是我指定情节本身的地方(省略了美学和其他东西),提前致谢:

"soda1" 是我修改过的数据框,设置清晰,"sdtv" 是每个 timepoint/treatment 的标准差,"oppervlak" 是我的 y 变量,"Measuring Date" 是我的 x 变量。 "Tray ID"是治疗,所以我的分组变量。

p <- ggplot(soda1, aes(x=reorder(`Measuring Date`, oppervlak), y=`oppervlak`, group=`Tray ID`, fill=`Tray ID`, colour = `Tray ID` )) + 
 scale_fill_brewer(palette = "Spectral") + 
 geom_errorbar(data=soda1, mapping=aes(ymin=oppervlak, ymax=oppervlak+sdtv, group=`Tray ID`), width=0.1) + 
 geom_line(aes(linetype=`Tray ID`)) + 
 geom_point(mapping=aes(x=`Measuring Date`, y=oppervlak, shape=`Tray ID`)) 

print(p)

仅显示误差条的一侧可以隐藏两个或多个变量或测量值分布之间不确定性的重叠。 您可以通过在对 geom_errorbar() 的调用中添加 position=position_dodge(width=) 来非常轻松地水平调整错误栏的位置,而不是隐藏此重叠。

例如:

library(ggplot2)

# some random data with two factors
df <- data.frame(a=rep(1:10, times=2),
                 b=runif(20),
                 treat=as.factor(rep(c(0,1), each=10)),
                 errormax=runif(20),
                 errormin=runif(20))

# plotting both sides of the errorbars, but dodging them horizontally
p <- ggplot(data=df, aes(x=a, y=b, colour=treat)) +
  geom_line() +
  geom_errorbar(data=df, aes(ymin=b-errormin, ymax=b+errormax),
                position=position_dodge(width=0.25))