R語言可視化——箱線圖及其美化技巧
今天跟大家分享如何在R語言中利用ggplot函數製作箱線圖及其美化。
箱線圖也是經常會用到的用於呈現數據分布形態的重要的圖表類型。
還是以ggplot2包內置的數據集為例進行案例演示:
ggplot(mpg,aes(class,displ))+geom_boxplot()
以上是最簡單的形式,一個分類變數,一個連續性數值型;我們通過添加分類變數,讓箱線圖能夠呈現更多的數據信息。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()
接下來我們還像往常一樣,通過position參數的切換來驗證boxplot圖表的position參數使用規則:
ggplot(diamonds,aes(cut,price,fill=color,alpha=1/30))+geom_boxplot(position="identity")
#當將位置設置為不做任何變換時,分類後的箱線圖會在對應的X軸分類項相互疊加,造成遮擋閱讀不便,不推薦此參數。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="stack")
根據經驗我們就可以猜到,估計使用堆積方式來呈現多維箱線圖肯定會失敗,因為即便真的將分類箱線圖堆積起來,那麼其呈現數據分布形態的功能也就喪失殆盡,果然軟體是報錯的。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="dodge")
果然在添加有多分類變數時,箱線圖默認使用的position參數是dodge。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="fill")
同樣將position參數設定為堆積百分比也毫無意義,軟體沒有通過並提出警示。
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+facet_grid(.~color)
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+facet_wrap(~color)
仔細體會兩種分面函數效果的差異:
箱線圖美化:
簇狀:
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_wsj()+scale_fill_wsj()+guides(fill=guide_legend(title=NULL))
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_economist()+scale_fill_economist()+guides(fill=guide_legend(title=NULL))
分面:
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_wsj()+scale_fill_wsj()+guides(fill=guide_legend(title=NULL))+ facet_grid(.~color)
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+ggtitle("Box Plot")+theme_economist()+scale_fill_economist()+guides(fill=guide_legend(title=NULL))+facet_grid(.~color)
聯繫方式:
微信:ljty1991
博客主頁:raindu"s home
個人公眾號:數據小魔方(datamofang)
團隊公眾號:EasyCharts
qq交流群:[魔方學院]553270834
推薦閱讀:
※3D 酷炫立體圖現已加入 pyecharts 豪華午餐
※leaflet的小搭檔leaflet.minicharts來了,從此動態地圖又多了一些樂趣~~~
※ggplot2入門簡介
※經管類核心期刊地域分布數據可視化
※那些年倒騰的R語言學習筆記,全都在這裡了~