鄭文嬌



摘要: 在大數據時代,人們不僅要從大數據中提取有用的數據,也要用相關軟件來統計數據、分析數據,讓這些數據方便使人接受。目前統計數據的可視化受到廣大應用研究者的重視,特別是統計數據的基于統計圖形的可視化得到了許多統計學者、信息學者、計算機學者的研究。柱形圖是最常見的圖標類型,柱形圖適用于多種類型的數據,柱形圖中的堆積柱形圖和分組柱形圖表達的信息更加直觀豐富。在R語言的環境下,給出了柱形圖的程序函數語言,并結合實際統計數據給出了實現柱形圖的具體案例。
Abstract: In the era of big data, people not only need to extract useful data from big data, but also use the related software to analyze the data and make the data convenient for people to accept. At present, the visualization of statistics is paid more and more attention by the majority of applied researchers. In particular, statistics-based visualization of statistics has been studied by many statisticians, information scholars and computer scientists. Column diagram is the most common icon type, and it is suitable for many types of data. The information expressed by the stacked and grouped column diagrams in the column diagram is more intuitive and abundant. In the environment of R language, the program function language of the column diagram is given. Combined with the actual statistical data, a concrete case is given to realize the columnar diagram.
關鍵詞: R語言;柱形圖;堆積柱形圖;分組柱形圖
Key words: R language;column chart;stacked column chart;grouped column chart
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1006-4311(2018)08-0216-02
在當今的大數據時代,大量的數據隱含著大量的信息,人們需要的信息,不僅要從大數據里提取出來,更要讓提取出的數據方便人們接受。據統計,人通常利用視聽覺來獲取信息,而獲取的信息中大約百分之九十信息都來源于視覺,相比較枯燥的數據,轉化為形象的統計圖更能讓人們接受,根據不同個性化的需要能將相同的數據解讀出不同的信息,能將數據里的信息最大化。
Excel、SPSS、STAT、R、matlab是日常學習工作中的統計軟件。本文從知網整理出的數據用R軟件制作出統計圖形。R軟件不僅具有強大的統計分析功能和統計制圖功能,還具有簡明的命令參數能夠讓用戶容易理解和操作。R軟件可編程的函數語言環境能為需要個性化定義的用戶提供極大的便利,是自由、免費、開源的一個軟件。所以越來越多的國內外學者都喜愛和使用這款強大的科學數據分析的工具[1]。
在日常數據處理中,當需要表示一段時間內數據的變化或者各項之間的比較時,柱形圖是非常常見的圖表。柱形圖不單有單一的條形圖,也有堆積柱形圖、分組柱形圖,能適用于不同類型的統計數據,通常x軸顯示的是先后順序的時間點,標識出圖表的尺度用y軸。另外有個需要注意的優化點,當處理的數據都是整數時,最好使圖形的y軸從0起步,這樣有利于從視覺角度客觀的比較各個柱形圖,分析柱形圖的變化與趨勢,否則容易造成假象[2]。
在R語言里以barplot()函數來實現柱形圖的繪制[3]。主要參數和參數的解釋如下所示:
barplot(height,width=1,space=NULL,names.arg=NULL,legend.text=NULL,beside=FALSE,horiz=FALSE,density=NULL,angle=45,col=NULL,border=par("fg"),main,sub,xlab,ylab,xlim=NULL,ylim=NULL,xpd=TRUE,log="",axes=TRUE,axisnames=TRUE,inside=TRUE,plot=TRUE,axis.lty=0,offset=0,add=FALSE,args.legend=NULL,.)
Width關于柱形寬度的設置。names.arg是柱形標簽的設置。Angle用來設置底紋斜率。Col用來設置條形底紋或者顏色填充。柱形的邊緣顏色在Border里設置,通常設置成黃色、紅色、藍色。xlab和ylab是x軸與y軸lable的設置。xlim和ylim是柱形x軸與y軸分布范圍的設置。Axes是柱形是否顯示x軸或y軸的設置。Plot是是否顯示柱形圖的設置。axis.lty是圖形x軸類型的設置。
表1中的數據來自中國知網檢索后整理的數據,按“主題”以“科技成功轉化and知識服務”或“科技成果轉化and信息服務”路徑進行檢索,并選取2007-2017年之間的數據。基于R語言利用此數據來畫柱形圖,畫出來的柱形圖可直觀可視化的反映2007-2017年數據的變化。
程序如下:
>year=c(2007,2008,2009,2010,2011,2012,2013,2014,
2015,2016,2017)
>count=c(16,11,2,17,16,21,14,19,22,14,5)
>barplot(count,names.arg=year,col="red",border=NA,xlab="年份",ylab="數量",main="2007-2017論文發表量")
函數結果圖形如圖1所示。
表2分別是以路徑“科研及成果轉化”、“知識服務體系or信息服務體系”、“科技成功轉化and知識服務”或“科技成果轉化and信息服務”進行檢索的數據,選取2007-2017年度的數據。利用此數據用R語言來實現堆積柱形圖,畫出來的堆積柱形圖可直觀可視化的反映2007-2017年數據的變化。
R程序如下:
>x1=read.csv("data2.csv",header=F)
>rownames(x1)=c("科技成果轉化","知識服務體系","科技成果轉化and知識服務體系")
>names(x1)=c(2007,2008,2009,2010,2011,2012,2013,2014,
2015,2016,2017)
>jx1=as.matrix(x1)
>barplot(jx1,main="三者結合",xlab="年份",ylab="數量",col=c("blue","red","yellow"),legend=rownames(jx1))
多組相關的數據可以用堆積柱形圖表示,比單一的柱形圖顯示更多的信息,具體圖形如圖2所示。
如果想分開看每組數據變化,在前者代碼的基礎上做一些調整,將beside設置成True就能做出分組柱形圖,三者分組柱形圖圖形如圖3所示。
barplot(jx1,main="三者分組柱形圖",xlab="年份",ylab="數量",col=c("blue","red","yellow"),legend=rownames(jx1),beside=TRUE)
本文以在中國知網上搜集的數據為例,做出了柱形圖、堆積柱形圖、分組柱形圖三種圖形,圖形簡潔直觀可視化,能讓人迅速抓住信息點。從以上實例得出,在處理有些數據時用R語言里的柱形圖函數能方便、簡潔、直觀的反應數據里的信息,同時人們還可以根據自己不同的需求設計個性化的圖形。當有多組相關的數據時,可用分組柱形圖、堆積柱形圖,它們具有更多豐富的信息,比起單獨做幾組單一的柱形圖,把幾組數據放在一起更具有直觀的比較性。
參考文獻:
[1]王懷亮.基于R語言的統計數據柱形圖的實現[J].電子技術,2013,42(08):72-74.
[2]Yau N,向怡寧.鮮活的數據——數據可視化指南[M].北京:人民郵電出版社,2011.
[3]Documentation R. Creates a bar plot with vertical or horizontal bars[EB/OL].http:// stat.ethz.ch/R-manual /R-patched/library/graphics/ html/barplot.html.
[4]薛毅,陳立萍.統計建模與R軟件[M].北京:清華大學出版社,2009.
[5]Kabacoff R I. R語言實戰[M].高濤,肖楠, 陳鋼,譯. 北京:人民郵電出版社,2013.
[6]王斌會.多元統計分析及R語言建模[M].廣州:暨南大學出版社,2010.