假设我们现在有CC,CG,GG三种基因型及三种基因型对应的表型,我们现在想要画出不同的基因型对应表型的棒状图及误差棒。整个命令最重要的就是最后一句了,用arrows函数画误差棒。用到的R语言如下:
data<-read.csv("E:/model/data.csv",sep=" ",header=T)#导入数据data mean_CC<-mean(data[,1])#计算CC基因型对应的表型的平均值 mean_GG<-mean(data[,2]) mean_GC<-mean(data[,3]) install.packages("plotrix")#安装plotrix包计算标准误 library("plotrix") SE_CC<-std.error(data[,1])#计算CC基因型对应表型平均值的标准误 SE_GG<-std.error(data[,2]) SE_GC<-std.error(data[,3]) density<-c(mean_CC,mean_GC,mean_GG)#画分布图 snp_name<-c("CC","GC","GG") barCenters<-barplot(beside=T,density,snp_name,border="black",col=c("purple","green3","blue"),density=c(5,5,5),width=c(2,2,2),space=c(1.5,1.5,1.5),ylim=c(0,10))#beside:逻辑参数。如果FALSE,那么将绘画堆叠式的条形;如果是TRUE,将绘画并列式条形。space:表示棒状图直接的距离,ylim:表示Y轴的取值范围 d<-data.frame(snp_name<-c("CC","GC","GG"),SE<-c(0.038,0.130,0.594),mean<-c(5.44,5.88,6.36))#创建一个基因型平均值及标准误的数据框 title(xlab="Genotype",ylab="Density",main="Density in rs141626761",cex.lab=1.5,cex.main = 2.5, font.main= 2)#cex.lab坐标轴字体大小 arrows(barCenters,d$mean-d$SE*2,barCenters,d$mean+d$SE*2, length=0.05, angle=90, code=3)#用arrows函数画误差棒
效果图如下: