R語言可視化——ggplot圖表系統中的輔助線

在之前的推送中,曾經有過一篇介紹excel圖表輔助線的製作方法,其中用到的技巧五花八門、令人眼花繚亂。

而ggplot圖表系統中的輔助線添加起來卻異常簡單,非常易於操作。

這主要得益於ggplot函數系統的圖層控制理念以及該包的開發者很早就意識到圖表輔助線這一層面的圖表元素需求。

接下來我以幾個案例的形式對圖表輔助線操作進行演示:

library(ggplot2)library(reshape2)library(ggthemes)

data<-data.frame(Name = c("蘋果","谷歌","臉書","亞馬遜","騰訊"),Conpany = c("Apple","Google","Facebook","Amozon","Tencent"),Sale2013 = c(5000,3500,2300,2100,3100),Sale2014 = c(5050,3800,2900,2500,3300),Sale2015 = c(5050,3800,2900,2500,3300),Sale2016 = c(5050,3800,2900,2500,3300))mydata<-melt(data,id.vars=c("Name","Conpany"),variable.name="Year",value.name="Sale")ggplot(mydata,aes(reorder(Conpany,-Sale),Sale,fill=Conpany))+geom_bar(stat="identity")

以上柱形圖中,我們如果想要了解五個公司的銷售額均值以及單個公司銷售額與均值的對比情況,需要在圖表中添加一條平均線。

ggplot(mydata,aes(reorder(Conpany,-Sale),Sale,fill=Conpany))+geom_bar(stat="identity")+geom_hline(aes(yintercept=mean(Sale)),linetype=5,col="red")

以上通過geom_hline圖層為柱形圖添加了均值輔助線,但是大家一定好奇為啥均值線那麼低,低於所有公司的銷售額,因為均值是季度均值,而銷售額是年度累計銷售額。

接下來我們製作一個分季度的柱形圖。

ggplot(mydata,aes(reorder(Conpany,-Sale),Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+geom_hline(aes(yintercept=mean(Sale)),linetype=5,col="red")

當然這種均值線在分面狀態下也是可以添加的。

ggplot(mydata,aes(reorder(Conpany,-Sale),Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+geom_hline(aes(yintercept=mean(Sale)),linetype=5,col="red")+facet_grid(.~Year)

輔助線在散點圖中也是經常使用的一種圖表元素,它可以幫助我們對分布形態進行分割和歸納,使得數據分布形態及趨勢更加明顯。

接下來使用diamond數據集來展示散點圖中的輔助線。

ggplot(diamonds,aes(carat,price))+geom_point()

以上散點圖沒有很明顯的分散趨勢,不過為了演示散點圖中的輔助線,我還是將散點像素畫處理,給散點圖加上均值十字線。

ggplot(diamonds,aes(carat,price))+geom_point(shape=".")+geom_hline(aes(yintercept=mean(price)),linetype=5,col="red")+geom_vline(aes(xintercept=mean(carat)),linetype=5,col="red")

像素畫處理之後,再加上均值十字線,你可以清晰地看到,數據分布形態中,左下角最為密集。

輔助線的另外一種常見的用途就是在時間序列數據中。

ggplot(economics,aes(date,unemploy))+geom_line()

這裡可以使用輔助線來標註我們最感興趣的時間點數據:

ggplot(economics,aes(date,unemploy))+geom_line()+geom_vline(aes(xintercept=as.numeric(start)),data=presidential)

> head(presidential) name start end party1 Eisenhower 1953-01-20 1961-01-20 Republican2 Kennedy 1961-01-20 1963-11-22 Democratic3 Johnson 1963-11-22 1969-01-20 Democratic4 Nixon 1969-01-20 1974-08-09 Republican5 Ford 1974-08-09 1977-01-20 Republican6 Carter 1977-01-20 1981-01-20 Democratic

presidential數據集是一個美國歷屆總統的任期截止時間,通過添加總統任期時間點,我們甚至可以從經濟波動數據中觀察到經濟指標變波動與政治周期的關係。

start是一個代表日期的欄位,也就是說我們可以賦值給geom_vline函數一個欄位,從而在折線圖中繪製出多個時間點的輔助線。

聯繫方式:

wechat:ljty1991

Mail:578708965@qq.com

個人公眾號:數據小魔方(datamofang)

團隊公眾號:EasyCharts

qq交流群:[魔方學院]553270834


推薦閱讀:

Excel才是繪圖王道
Leaflet在線地圖進階寶典——json素材操縱與圖層面板控制
GraphQL 中文官網上線啦 | 掘金翻譯計劃
Python數據分析及可視化實例之Pandas十分鐘入門
如何評價最新發布的ECharts 4?

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