我正在尝试在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值没有误差条。因此,我想绘制条形图:
我不确定我的代码(或输入格式)出错了:
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)
产生:
如您所见,误差线位于每个纸槽的中间,而不是每个纸条的上方。任何建议/意见将非常感谢!
答案 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)
这给出了: