今天跟你們分享如何在R語言中利用ggplot函數製做箱線圖及其美化。微信
箱線圖也是常常會用到的用於呈現數據分佈形態的重要的圖表類型。ide
仍是以ggplot2包內置的數據集爲例進行案例演示:函數
ggplot(mpg,aes(class,displ))+geom_boxplot()
ui
以上是最簡單的形式,一個分類變量,一個連續性數值型;咱們經過添加分類變量,讓箱線圖可以呈現更多的數據信息。spa
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot().net
接下來咱們還像往常同樣,經過position參數的切換來驗證boxplot圖表的position參數使用規則:3d
ggplot(diamonds,aes(cut,price,fill=color,alpha=1/30))+geom_boxplot(position="identity")blog
#當將位置設置爲不作任何變換時,分類後的箱線圖會在對應的X軸分類項相互疊加,形成遮擋閱讀不便,不推薦此參數。ci
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot(position="stack")get
根據經驗咱們就能夠猜到,估計使用堆積方式來呈現多維箱線圖確定會失敗,由於即使真的將分類箱線圖堆積起來,那麼其呈現數據分佈形態的功能也就喪失殆盡,果真軟件是報錯的。
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)
魔方學院QQ羣:
QQ羣:
微信羣:
本文分享自微信公衆號 - 數據小魔方(datamofang)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。