R数据可视化6:面积图 Area Chart

作者: jlyq617 | 来源:发表于2019-10-09 15:55 被阅读0次

    简书整顿给了我光明正大的理由偷懒。把囤的文发了,继续码我关于R数据可视化的实用文。今天我们来介绍面积图

    在介绍本文内容之前给大家安利一篇R友舍公众号的文章,终于不用自己找数据了。这篇文章作者给了50个ggplot2可视化案例还有代码:50个ggplot2可视化案例

    什么是面积图

    面积图是一种源于折线图但是改变了其展现方式的图形。具体地,它通过一定的区域面积来表示数据大小,利用不同的颜色或者线条来区别不同组的数据。
    William Playfair,苏格兰工程师和政治经济学家,是图形化统计方法的创始人,是面积图的发明人,除此之外他还发明了折线图、条形图、饼图等。他发表于1786年的著作The Commercial and Political Atlas中使用了面积图:

    让我们来看一个维基百科给的例子:

    凭借谷歌翻译,了解到这张图(图中为德语)主要是展示了1991-2015年德国移民的情况,图中不同颜色就代表着不同的移民类别,而面积大小就代表的移民数量。所以显而易见最多的类别为紫色Asylbewerber(寻求庇护),其次是绿色其他外国人。从图形的变化可以看到,紫色和绿色两类都是近年都是有所增长的,而蓝色(海归)可以看到近年来有所下降,黄色(其他类别)则相对比较稳定。

    通过上述例子可以看出面积图和折线图很相似,在很多时候两者可以相互替代,以丰富数据可视化的形式。

    怎么做面积图

    1)需要什么格式的数据
    本次使用的是一个US economic time series的名叫economics的数据。我们选择其中的两列数据: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')
    

    相关文章

      网友评论

        本文标题:R数据可视化6:面积图 Area Chart

        本文链接:https://www.haomeiwen.com/subject/rachpctx.html