R語言可視化——散點圖及其美化技巧!
今天開始跟大家分享散點圖及其美化技巧!
R語言中的散點圖需要兩個數值型變數分別作為X軸、Y軸映射對象,同時通過顏色、大小、形狀進行分類變數映射。
由於散點圖在數據量較多的情況下效果更佳,這裡使用ggplot包內自帶的數據集diamonds進行案例演示。
ggplot(diamonds,aes(carat,price))+geom_point()n
在R中製作散點圖的基本語法如上,數據集、X軸、Y軸,最後是散點圖圖層。
以上散點圖是最簡單的不加任何修飾的默認圖形,通過在aes映射中添加分類變數,以大小、顏色、形狀進行區分,就可以製作出多系列散點圖。
散點圖(形狀分類)
ggplot(diamonds,aes(carat,price))+geom_point(aes(shape=cut))n
散點圖(顏色分類)
ggplot(diamonds,aes(carat,price))+geom_point(aes(colour=cut))n
散點圖(大小分類)
ggplot(diamonds,aes(carat,price))+geom_point(aes(size=cut))n
也可以同時在一個函數語句中加入兩個以上的分類指標參數。
ggplot(diamonds,aes(carat,price))+geom_point(aes(colour=cut,size=table))n
由於該數據集記錄較多,所以數據點相互重合,很多區域很難辨識,R語言中提供了兩種處理方式:
使用alpha參數(透明化處理):
ggplot(diamonds,aes(carat,price))+geom_point(alpha = 1/10)n
使用像素級散點圖:
ggplot(diamonds,aes(carat,price))+geom_point(shape=".")n
由於散點圖可以通過添加size參數用來展示某一指標在散點上的大小,所以基本也不需要單獨的氣泡圖函數。
以上散點圖都沒有考慮過美化的問題;這裡通過添加主題、顏色模板可以將其美化:
ggplot(diamonds,aes(carat,price))+ngeom_point(aes(colour=cut))+nggtitle("Scatter Plot")+ntheme_economist(base_size=14)+nscale_colour_economist()+nguides(colour=guide_legend(title=NULL))n
ggplot(diamonds,aes(carat,price))+ngeom_point(aes(colour=cut,size=table))+nggtitle("Scatter Plot")+ntheme_wsj()+nscale_colour_wsj()+nguides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))n
ggplot(diamonds,aes(carat,price))+ngeom_point(aes(colour=cut,size=table))+nggtitle("Scatter Plot")+ntheme_economist(base_size=14)+nscale_colour_economist()+nguides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))n
當然,如果你覺得上數據集太過密集,想要看某一個區域內的具體分布情況,只需要添加xlim()、ylim()參數即可:
ggplot(diamonds,aes(carat,price))+ngeom_point(aes(colour=cut,size=table))+nggtitle("Scatter Plot")+ntheme_wsj()+nscale_colour_wsj()+nguides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))+nxlim(1,2)+nylim(5000,10000)n
ggplot(diamonds,aes(carat,price))+ngeom_point(aes(colour=cut,size=table))+nggtitle("Scatter Plot")+ntheme_economist(base_size=14)+nscale_colour_economist()+nguides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))+nxlim(1,2)+nylim(5000,10000)n
最後,如果你想要擬合出該數據集的走勢曲線,也可以通過添加geom_smooth()參數實現:
ggplot(diamonds,aes(carat,price))+ngeom_point()+ngeom_smooth(method=lm)+ntheme_classic()n
聯繫方式:
微信:ljty1991
博客主頁:raindus home
個人公眾號:數據小魔方(datamofang)
團隊公眾號:EasyCharts
qq交流群:[魔方學院]553270834
推薦閱讀:
※可能是比Python更方便的詞雲製作了
※亮瞎雙眼的Power BI自定義可視化圖表(2017最新版)
※大數據可視化引擎 DHAgency:多樣數據,實時展示
※數據表管理技能大科普
※杭州租房市場初探