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語言學習筆記,全都在這裡了~

TAG:R编程语言 | 数据可视化 | 图表 |