2

我有以下示例数据集:

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))

这应该产生误差线。但它没有:

在此处输入图像描述

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

  1. 如果误差值大于平均值(在本例中为0.02288218 < 0.02693519.
  2. 如果误差线达到绘图的限制,也会发生这种情况。

包含该dodge命令是因为我们需要它用于包含更多数据的实际绘图,因此包含它会很好。有没有办法在这种图中绘制误差线?

非常感谢!

4

1 回答 1

0

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

于 2018-01-19T06:44:26.243 回答