R 在ggplot2条形图中的一组上制作错误条形图

R 在ggplot2条形图中的一组上制作错误条形图,r,ggplot2,R,Ggplot2,我的数据中有两组,其中一组是固定数量的,没有错误。我已将该组的标准偏差设置为0。另一组是通过实验获得的,有误差。我试图获得两组并排的错误条,但只想显示一组的错误条 这是我的数据的一个子集 > dput(miniDF) structure(list(meanVal = c(0.141142140910031, 0.123590465669207, 0.107997372347094, 0.0942024597244465, 0.0820416407495106, 0.07135368804

我的数据中有两组,其中一组是固定数量的,没有错误。我已将该组的标准偏差设置为0。另一组是通过实验获得的,有误差。我试图获得两组并排的错误条,但只想显示一组的错误条

这是我的数据的一个子集

> dput(miniDF)
structure(list(meanVal = c(0.141142140910031, 0.123590465669207, 
0.107997372347094, 0.0942024597244465, 0.0820416407495106, 0.071353688041151, 
0.0619844689599558, 0.0537895165007547, 0.0466354169758515, 0.0404003706604038, 
0.158461397159066, 0.153053253758612, 0.138918096515527, 0.125843921455302, 
0.110345396211753, 0.0787109795360732, 0.0618074624835807, 0.0449341121897361, 
0.0363718842110094, 0.0291184151867377), sdVal = c(0, 2.86100521766632e-09, 
4.69695882560463e-09, 5.79859596041863e-09, 6.38047156294103e-09, 
6.60009718207142e-09, 6.57241274422449e-09, 6.3807059656363e-09, 
6.08482995661066e-09, 5.72736892254484e-09, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0), week = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), .Label = c("Week 1", 
"Week 2", "Week 3", "Week 4", "Week 5", "Week 6", "Week 7", "Week 8", 
"Week 9", "Week 10", "Week 11", "Week 12", "Week 13", "Week 14", 
"Week 15", "Week 16", "Week 17", "Week 18", "Week 19", "Week 20", 
"Week 21"), class = "factor"), group = structure(c(2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L), .Label = c("q", "qOpt"), class = "factor"), cluster = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10"), class = "factor")), .Names = c("meanVal", "sdVal", 
"week", "group", "cluster"), row.names = c(1L, 2L, 3L, 4L, 5L, 
6L, 7L, 8L, 9L, 10L, 211L, 212L, 213L, 214L, 215L, 216L, 217L, 
218L, 219L, 220L), class = "data.frame")
绘图的代码是

limits <- aes(ymax = meanVal + sdVal, ymin = meanVal - sdVal)
dodge <- position_dodge(width=0.9)
p <- ggplot(miniDF, aes(fill=group, y=meanVal, x=cluster)) +
  geom_bar(position=dodge, stat="identity") +
  geom_errorbar(position=dodge,limits, width=0.25) +
  facet_wrap(~week,ncol=5)

limits解决方法是使用
geom_errorbar()
中的数据子集,然后将x值设置为1.225(计算为1+0.9/4(回避宽度))


dodge解决方法是使用
geom_errorbar()
中的数据子集,然后将x值设置为1.225(计算为1+0.9/4(回避宽度))


dodge我能找到的最简单的解决办法就是

miniDF$sdVal[miniDF$group == 'q'] <- NA
p

miniDF$sdVal[miniDF$group=='q']我能找到的最简单的解决方案就是

miniDF$sdVal[miniDF$group == 'q'] <- NA
p

miniDF$sdVal[miniDF$group=='q']但是@tonytonov的答案更一般。你应该接受这一点,但@tonytonov的答案更为笼统。你应该接受这一点