簡書整頓給了我光明正大的理由偷懶。把囤的文發(fā)了,繼續(xù)碼我關于R數(shù)據(jù)可視化的實用文。今天我們來介紹面積圖。
在介紹本文內容之前給大家安利一篇R友舍公眾號的文章,終于不用自己找數(shù)據(jù)了。這篇文章作者給了50個ggplot2可視化案例還有代碼:50個ggplot2可視化案例
什么是面積圖
面積圖是一種源于折線圖但是改變了其展現(xiàn)方式的圖形。具體地,它通過一定的區(qū)域面積來表示數(shù)據(jù)大小,利用不同的顏色或者線條來區(qū)別不同組的數(shù)據(jù)。
William Playfair,蘇格蘭工程師和政治經濟學家,是圖形化統(tǒng)計方法的創(chuàng)始人,是面積圖的發(fā)明人,除此之外他還發(fā)明了折線圖、條形圖、餅圖等。他發(fā)表于1786年的著作The Commercial and Political Atlas中使用了面積圖:

讓我們來看一個維基百科給的例子:

憑借谷歌翻譯,了解到這張圖(圖中為德語)主要是展示了1991-2015年德國移民的情況,圖中不同顏色就代表著不同的移民類別,而面積大小就代表的移民數(shù)量。所以顯而易見最多的類別為紫色Asylbewerber(尋求庇護),其次是綠色其他外國人。從圖形的變化可以看到,紫色和綠色兩類都是近年都是有所增長的,而藍色(海歸)可以看到近年來有所下降,黃色(其他類別)則相對比較穩(wěn)定。
通過上述例子可以看出面積圖和折線圖很相似,在很多時候兩者可以相互替代,以豐富數(shù)據(jù)可視化的形式。
怎么做面積圖
1)需要什么格式的數(shù)據(jù)
本次使用的是一個US economic time series的名叫economics的數(shù)據(jù)。我們選擇其中的兩列數(shù)據(jù):psavert和uempmed。
psavert: personal savings rate
uempmed: median duration of unemployment, in weeks
library(ggplot2)
library(lubridate)
#選擇年份范圍:2000年-2014年
df <- economics[,c("date", "psavert", "uempmed")]
df <- df[lubridate::year(df$date) %in% c(2000:2014), ]

2)如何作圖
library(ggplot2)
library(lubridate)
library(RColorBrewer)
#psavert=personal savings rate,uempmed=median duration of unemployment, in weeks,
dat <- economics[,c("date", "psavert", "uempmed")]
dat<- dat[lubridate::year(dat$date) %in% c(2000:2014), ]
#plot
p<-ggplot(dat,aes(x=date))+
geom_area(aes(y=uempmed+psavert,fill="psavert"))+#注意先后順序因為ggplot2是圖層疊加
geom_area(aes(y=uempmed,fill="uempmed"))+
theme_bw()+
theme(
legend.title = element_blank()
)+
scale_fill_brewer(palette = "Paired")+
labs(title='Area Chart of Returns Percentage',
subtitle='Source: FRED Economic Research')+
ylab("Returns%")+
xlab('Year')
