R语言数据可视化_科学统计图表绘制2.1——密度分布图、面积图、密度图


面积图介绍
提起面积图,就不得不说他与折线图各自适用情况。

首先,如果只有一个要展示的元素,那么最好使用折线图,因为折线图可以清晰的查看元素的涨跌走势。

如果需要展示多种元素,并且需要观看整体走势、展示不同元素的涨跌状况,最好使用面积图。面积图更适合描绘整体与局部的关系。
而折线图则在不考录整体走势的情况下使用。折线图更容易展示不同元素之间的相关关系。

下图为本文章所绘面积图

R语言画迁徙图 r语言画分布图_r语言


面积图怎么画

所用数据是ggplot2函数包自带的数据——economics

本文只选用其中的psavent和uempmed绘制图像

R语言画迁徙图 r语言画分布图_数据可视化_02

df <- economics[,c("date", "psavert", "uempmed")]
df <- df[year(df$date) %in% c(2004:2014), ]
#挑选时间在2004到2014年之间的数据

p<-ggplot(data=df,aes(x=date))+
  geom_hline(yintercept = c(0,10,20,30),color="grey",alpha=0.5)+
  geom_area(aes(y=`uempmed`+`psavert`,fill="psavert"))+
#注意先后顺序因为ggplot2是图层叠加
  geom_area(aes(y=`uempmed`,fill="uempmed"))+
  #注意这里对fill赋值的操作,如果不喜欢这两种颜色,就可以用scale_fill_manul函数更改颜色
  #虽然我不觉得你会不喜欢这两个颜色,毕竟BBC的可视化新闻也常用这对颜色
  scale_y_continuous(labels = c("0","10","20","30(%)"))+
  theme_bw()+
  theme(
    legend.title = element_blank()
  )+
  scale_fill_brewer(palette = "Paired",labels = c( "Psavert", "Uempmed"))+
  #上色
  labs(title='Area Chart of Returns Percentage',
       subtitle='Source: FRED Economic Research')+
  ylab("Returns")+xlab("")

p

R语言画迁徙图 r语言画分布图_R语言画迁徙图_03


去掉边框,并调节图例位置(因为图的左上方太空了)

p<-p+theme(
        legend.position = c(0.2,0.75),
        legend.text = element_text(size = 11),
        panel.border  = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.ticks.x = element_blank())
  
p

R语言画迁徙图 r语言画分布图_r语言_04


最后通过ps小做修改

R语言画迁徙图 r语言画分布图_R语言画迁徙图_05


在这次的绘图中,有一点需要注意。我们使用的economics因为每一列对应一种元素,所以只能执行两遍geom_area来完成面积图的重叠。正常来讲,数据都是一列元素值一列标签值,所以通常执行以下代码绘制面积图。

ggplot(……)+geom_area(aes(fill = labs))
#通过 ”fill=标签” 来对不同元素施以不同颜色,从而代替两遍geom_area
#其他的参数调节代码原样粘贴

我曾遇到这样的一个需求,他有(x,y)这样的一组点,要求绘制类似密度图的面积图。
问题在于如果将点用折线相连,则图像锯齿十分严重,而客户需要的是一个平滑的面积图…
预知后事如何,且听下回分解~