繪制簡單條形圖/SCI論文/科研/研究生/生信分析熱點(diǎn)思路
? ?

繪制條形圖最普通的畫法是直接用系統(tǒng)自帶函數(shù)barplot(),下方示例我們加載的是R的自帶包iris,圖中展示的是不同寬度花萼鳶尾花的頻數(shù)分布。
attach(iris)
table(iris$Sepal.Length)
table(iris$Sepal.Width)
table(iris$Species)
barplot(table(iris$Sepal.Width))

? ? 但有時(shí)我們希望得到水平條形圖,還記得上次我們說的顏色函數(shù)rainbow嗎?做一個彩色的水平柱狀圖吧。參數(shù)horiz是控制柱狀圖方向的函數(shù),記得不要把橫縱坐標(biāo)名字設(shè)置錯了。
n<-length(table (iris$Sepal.Width))
barplot(table(iris$Sepal.Width),
????????xlab='count',ylab='Sepal.Width',
????????horiz = TRUE,col = rainbow(n))

繪制柱狀圖的方法有多種,幾乎每種繪圖工具都有繪制柱狀圖的功能,掌握好一兩種就夠。我們不需要同時(shí)掌握過多相同功能是的工具,而應(yīng)但把目光放在實(shí)現(xiàn)更多功能上。比如柱狀圖有一種升級版本叫做帕累托圖,很多人就沒做過。
x<-sort(table(iris$Sepal.Width),decreasing = T)
color=RColorBrewer::brewer.pal(23,'Set3')
#按照頻數(shù)多少對數(shù)據(jù)排序
par(mai=c(0.7,0.7,0.2,0.7),cex=0.7)
bar<-barplot(x,xlab = 'Sepal.Width',
?????????????ylab ='count',col = color,
?????????????ylim = c(0,30))
text(bar,x,labels=x,pos=3,col='black')
y<-cumsum(x)/sum(x)
par(new=T)
plot(y,type = 'b',pch=15,axes = F,
?????xlab = '',ylab = '',main = '')
axis(side = 4)
mtext('Cumulative frequency',
??????side = 4,line = 3,cex = 0.8)
text(labels='Cumulative distribution curve',
?????x=10,y=0.92,cex=1.3)
?
首先我們給各個寬度的花萼按照數(shù)量進(jìn)行排序得到x
?
然后就是用顏色函數(shù)快速提取23種顏色,為什么我會知道是23種呢?用length數(shù)一下就知道了。
還需要用par函數(shù)控制一下圖片右側(cè)的留白,因?yàn)槲覀円有碌淖鴺?biāo)軸,默認(rèn)的設(shè)置不夠坐標(biāo)軸加標(biāo)簽。
然后就可以用barplot作圖了
text可以給barplot出的圖加標(biāo)簽
cumsum這個函數(shù)有的人可能沒見過,就是計(jì)算每組頻數(shù)的累加,試一下就知道了我們用有來制作曲線
par(new=T)就是在原來的圖片上繼續(xù)畫圖,plot大家應(yīng)該都會
axis可以多加一條刻度,就是最右邊的那條,mtext給刻度加標(biāo)簽
隨后我們再次用到了text,根據(jù)實(shí)際情況調(diào)一下位置就好

