R:在对数刻度上不在ggplot中打印误差线

时间:2013-08-05 15:04:48

标签: r ggplot2

我有以下示例数据集:

Sample,Zeitpunkt,Target,NRQ,SD
"Ctrl","42wk","Ccl12",0.02288218,0.02693519

我需要使用对数y标度。 MWE如下所示:

library("ggplot2")

Cc <- ggplot(test, aes(x=Sample, y=NRQ, fill=Zeitpunkt, ymin=NRQ-SD, ymax=NRQ+SD)) 
Cc <- Cc + geom_bar(stat="identity", position="dodge") 
Cc <- Cc + scale_y_log10(breaks=c(0.01,0.1,1,10,100), limits=c(0.00001,200))
Cc <- Cc + annotation_logticks(base = 10, sides="l")
Cc <- Cc + guides(fill = guide_legend(keywidth = 0.6, keyheight = 0.6))
Cc <- Cc + geom_errorbar(linetype=1, size=0.5, width=0, position=position_dodge(0.9))

哪个应该产生错误条。但事实并非如此:

enter image description here

到目前为止我们发现的是:

  1. 如果错误值大于平均值,则会发生错误(在此示例中为0.02288218 < 0.02693519
  2. 如果错误栏达到了图表的限制,也会发生这种情况。
  3. 包含dodge命令是因为我们需要它来包含更多数据的实际绘图,所以包含它会很好。 有没有办法在这种情节中绘制误差线?

    非常感谢!

1 个答案:

答案 0 :(得分:0)

我意识到这个问题很老了,但我遇到了类似的问题 我找到了解决方案。当我将+ scale_X_log10()添加到ggplot时,我的所有错误栏都被删除了。我也在情节中添加了+ position=position_dodge(2.5)。删除此命令或将其减少到position=position_dodge(.025)会将我的错误栏返回到适当的位置。但是,在将y轴缩放到log10时,我无法复制此问题。