編程技術R語言函數與模型之數據可視化解讀與研究(圖)
可視化不是數據分析的核心,但倒是數據分析不可或缺的部分。數據可視化在商業領域的重要性不言自明,在科學研究中更好的呈現數據也是優秀研究報告和論文的評價標準之一,很難想象存在未經修飾圖表的論文會發表在質量較好的期刊上。上個月與數據分析友人探討數據可視化,一句話令我印象深入,「字不如表,表不如圖」,深覺得然。R軟件進行可視化有基礎包,幾乎覆蓋了所有經常使用圖形的呈現。然而基礎包對圖形元素的精細控制遠不如ggplot2包。咱們今天推送的數據可視化以ggplot2包爲基礎。
數據可視化的內容無外乎是數據及數據映射。在繪圖以前數據確定是已經整理完成,因此數據可視化的核心在於數據映射(能夠理解爲函數的映射,從單個數據點x到電腦屏幕的y)。實現數據映射包括映射位置(座標軸)和映射形式(點、線、面)。座標軸控制了數據點與位置標準的相對位置,映射形式就是須要繪製的圖形。ggplot2包的優點在於能夠自定義圖形繪製的各個元素,其劣勢在於自定義極其繁瑣。html
###首先定義數據來源。在使用ggplot()函數時,咱們建議只在其中定義數據來源
p=ggplot(figure_czb_industry)
###接下來定義圖形主題。主題的設置包括畫板plot、繪圖區panel、座標軸axis、圖例legend等,按照對象的內容特徵能夠分爲矩形、線、文本等,分別由element_rect()、element_line()、element_text()函數控制。element_rect()函數控制矩形區域填充顏色、邊框顏色、邊框粗細、邊框線型等。elemnt_line()函數控制線條的顏色、線條粗細、線型等。element_text()函數控制字體、字型、顏色、大小、角度和位置等。
p+theme(plot.background=element_rect(fill="grey90",color="grey"),
panel.background=element_rect(fill="grey95",color="black",linetype="solid"),
axis.text.y=element_text(size=7.5,face="bold",hjust=-0.3,vjust=0.5),
axis.text.x=element_text(size=7.5,face="bold",hjust=0.5,vjust=-1,angle=270),
axis.title=element_text(size=10,face="bold"),
axis.ticks.x=element_blank(),axis.ticks.y=element_line(colour="black",size=0.75),
axis.ticks.length=unit(-0.1,"cm"),
axis.line=element_line(color="black",size=0.75),
panel.grid=element_line(color="red"),
legend.position='none',
plot.title=element_text(size=15,face="bold",hjust=0.5,vjust=0.5))+
geom_boxplot(aes(x=industry,y=invest,colour=industry))+
ylim(0,800)+
labs(title="財政部典型行業PPP項目分佈",x=NULL,y="PPP項目投資金額")
###ggplot2包繪製圖形使用+來疊加內容,如ggplot()+theme()+geom_boxplot()+ylim()+labs()等,分別控制圖形數據、數據映射主題、數據映射形式、座標軸範圍和標題等內容。建議經過ggplot()函數和geom_boxplot(aes(x=, y=))將數據和映射分離,前者只定義數據的來源,後者經過具體的圖形形式控制x軸和y軸變量,駱駝祥子讀後感(http://www.simayi.net/duhougan/7073.html)心得體會,更好的作法是在geom_boxplot()以前定義主題和座標軸,在其以後定義名稱。
若是無需自定義圖形或者不想過於關注圖形主題搭配,那麼能夠加載ggplot2的內置主題以及擴展主題包ggtheme,分別有9種和19種主題可供選擇,ggtheme包還提供了Excel軟件主題、Stata軟件主題、Google主題、Economist雜誌主題、WSJ報紙主題等。
從上面的效果來看,使用內置主題(左起第一排爲ggplot2內置主題,左起第二排爲三大雜誌報紙主題,左起第三排爲其它軟件主題)可能對單個圖形展現有效,但對多圖展現則比較糟糕了。所以掌握ggplot2主題修改對於數據可視化裨益良多。自定義主題的優點是,一旦已經找到了適合的主題,就真的實現一勞永逸了,ggplot2繪圖任務比基礎包還要輕鬆。
掌握基本數據可視化技巧雖然能夠改善數據呈現的效果,但數據可視化不能期望有任何捷徑可尋,須日積月累,不斷嘗試各類搭配,很遺憾我沒有找到這同樣一種自定義主題,因此也沒法與你們共享。雖然撰寫了三年宏觀經濟形勢分析報告,繪製了大量圖形,但對於顏色等的搭配,我感受本身依然是個門外漢,這也是尚待突破的瓶頸。做者:許坤編程