假設我們現在有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函數畫誤差棒
效果圖如下: