bin中间ggplot中的错误栏

时间:2015-07-16 10:55:03

标签: r ggplot2

我正在尝试在ggplot中制作条形图,每个bin有2个值(来自RNA-Seq和qPCR实验的倍数变化值):

Gene    FC  expt    se
a   1.02    RNA-Seq 0
b   2.79    RNA-Seq 0
c   1.63    RNA-Seq 0
d   0.84    RNA-Seq 0
e   0.81    RNA-Seq 0
f   1.45    RNA-Seq 0
g   1.27    RNA-Seq 0
h   1.72    RNA-Seq 0
i   2.52    RNA-Seq 0
a   0.84    qPCR    0.16
b   1.92    qPCR    0.15
c   1.14    qPCR    0.78
d   0.47    qPCR    0.76
e   0.95    qPCR    0.26
f   0.32    qPCR    0.51
g   0.92    qPCR    0.39
h   0.97    qPCR    0.61
i   1.73    qPCR    0.77

我的RNA-Seq值没有误差条。因此,我想绘制条形图:

  • 仅向上扩展的错误栏
  • 仅针对q-PCR柱的误差条

我不确定我的代码(或输入格式)出错了:

df <- read.table("stack.txt", header=TRUE)
limits <- aes(ymax = FC + se, ymin = FC)
dodge <- position_dodge(width = 0.9)

ggplot(data=df, aes(x=Gene, y=FC)) +
geom_errorbar(limits, position = dodge, width = 0.25) +
geom_bar(aes(fill=expt),colour="black", stat="identity", position = dodge)

产生:

enter image description here

如您所见,误差线位于每个纸槽的中间,而不是每个纸条的上方。任何建议/意见将非常感谢!

1 个答案:

答案 0 :(得分:1)

group参数添加到aes后,您将获得所需的结果:

ggplot(data=df, aes(x=Gene, y=FC, fill=expt, group=expt)) +
  geom_bar(colour="black", stat="identity", position = position_dodge(width = 0.9)) +
  geom_errorbar(aes(ymax = FC + se, ymin = FC, group=expt),
                position = position_dodge(width = 0.9), width = 0.25)

这给出了:

enter image description here