样本格式如下:
Sample Value Date MeanError
1 Th1 8.60 术前 2.69
2 Th1 13.77 术后3天 3.60
3 Th1 8.85 术后7天 2.64
4 Th1 8.36 术后3个月 2.50
5 Th17 1.89 术前 0.38
6 Th17 3.24 术后3天 0.42
7 Th17 2.82 术后7天 0.36
8 Th17 2.11 术后3个月 0.30
现在需要以Sample为横轴,分两组,每组分别显示术前术后的柱形图,代码如下
qplot(Sample, Value, data=data1, geom="histogram", stat='identity',fill=Date, position="dodge")
注意使用histogram,并且stat='identity'指定了y轴,为Value,如果不加这句,则默认统计个数,fill=Date表示分组采用Date栏。
这样我们可以得到如下图像:
当我们想加上误差条的时候,可以加上如下代码
+geom_errorbar(aes(ymax=Value+MeanError/2, ymin=Value-MeanError/2, width=0.2),position=position_dodge(width=0.9))
其中aes里面的信息是基本信息,position=position_dodge(width=0.9)表示误差条的位置,可以改变这个width来看看不同效果
最终的效果图为:
如果希望柱状图之前存在空隙,可以如下设置
qplot(Sample, Value, data=data1, width=0.85, geom="bar", stat="identity", fill=Date, position = position_dodge(width = 0.9))
如果希望bar的顺序按照指定的,可以采用如下方法:
x <- c("Baseline", "3days", "7days", "3months")
ggplot(data=data1, map=aes(x=Sample, y=Value, width=0.85,fill=factor(Date,x)))+geom_bar(stat="identity", colour="black",position = position_dodge(width = 0.9))
最后如果加上 theme(legend.title=element_blank()) 可以去掉factor信息
完成!