R语言——折线图与面积图

参考资料:R语言数据可视化之美

1、折线图

折线图(line chart)用于在连续间隔或时间跨度上显示定量数值,最常用来显示趋势和关系。此外,折线图也能给出某时间段内的整体概览,看看数据在这段时间内的发展情况。

在折线图中,X轴包括类别型或序数型变量,分别对应文本坐标和序数坐标两种类型;Y轴为数值型变量。折线图主要应用于时间数据的可视化

在散点图系列中,曲线图(带直线而没有数据标记的散点图)与折线图的图像显示效果类似。在曲线图中,X轴也表示时间变量,但必须是数值格式,这是两者之间最大的区别。所以,如果X轴变量为数值格式,则应该是使用曲线图来显示数据,而不是折线图。

在折线图系列中,标准的斜线图和带数据标记的折线图可以很好地将数据可视化。另外,堆积折线图和百分比堆积折线图等推荐使用相应的面积图。

2、面积图

面积图(area graph)又叫区域图,是在折线图的基础之上形成的,它将折线图的折现与自变量坐标轴之间的区域使用颜色或者纹理填充(填充区域成为"面积"),这样可以更好地突出趋势信息,同时让图表更加美观。跟折线图一样,面积图可显示某时间段内量化数值的变化和发展,最常用来展示趋势,而非具体数值

多数据系列的面积图如果使用得当,效果可以比多数据系列的折线图美观很多。需要注意的是,颜色要带有一定的透明度 ,透明度可以很好地帮助使用者观察不同数据系列之间的重叠关系,避免数据系列之间的遮挡。但数据系列一定不要超过3个,不然图表看起来会比较混乱,反而不利于数据信息的准确和美观表达。当数据系列较多时,建议使用折线图、分面面积图或者峰峦图展示数据。

R 复制代码
library(ggplot2)
library(RColorBrewer)
mydata<-read.csv("Area_Data.csv",stringsAsFactors=FALSE)
mydata$date<-as.Date(mydata$date)
newdata<-data.frame(spline(as.numeric(mydata$date),mydata$value,
                           n=1000,method="natural"))
newdata$date<-as.Date(newdata$x,origin="1970-01-01")
ggplot(newdata,aes(x=date,y=y))+
  geom_bar(aes(fill=y,color=y),stat="identity",alpha=1,width=1)+
  geom_line(color="black",size=0.5)+
  scale_color_gradientn(colors=brewer.pal(9,"Reds"),name="Value")+
  scale_x_date(date_labels="%Y",date_breaks="2 year")

堆积面积图(stacked area graph)能同时显示多个数据系列,每个系列的开始点是先前数据系列的结束点。堆积面积图上的最大面积代表了所有数据量的总和,是一个整体。各个堆积起来的面积表示各个数据量的大小,这些堆积起来的面积图在表现大数据的总量分量的变量情况时格外有用,所以层叠面积图不适用于表示带有负值的数据集

在堆积面积图的基础上,将各个面积的因变量的数据加和后的总量进行归一化就形成了百分比堆积面积图。该图不能反映总量的变化,但可以清晰地反映每个数值所占百分比随时间或者类别变化的趋势,对于各指标分量占比很有用。

堆积面积图侧重于表现不同时间段(数据区间)的多个分类累加值之间的趋势。百分比堆积面积图表现不同时间段(数据区间)的多个分类占比的变化趋势。而堆积柱形图和堆积面积图的差别在于对比面积图的X轴上只能表示连续数据(时间或数值),堆积柱形图的X轴上只能表示分类数据。

R中ggplot2包的geom_area()函数可以绘制面积图系列。其中,position="stack"表示多数据系列的堆积;position="full"表示数据系列以百分比形式的堆叠。

R 复制代码
library(ggplot2)
library(reshape2)
mydata<-read.csv("StackedArea_Data.csv",stringsAsFactors=FALSE)
mydata$Date<-as.Date(mydata$Date)
mydata<-melt(mydata,id="Date")
ggplot(mydata,aes(x=Date,y=value,fill=variable))+
  geom_area(position="stack",alpha=1)+
  geom_line(position="stack",size=0.25,color="black")+
  scale_x_date(date_labels="%Y",date_breaks="2 year")
相关推荐
中科致研zkzhiyan2 天前
锚定评委评审视角,构建科研重点项目申报答辩PPT闭环逻辑框架
信息可视化·powerpoint·ppt
想你依然心痛3 天前
用MySQL玩转数据可视化:从SQL查询到动态图表的完整实战
sql·mysql·信息可视化
延凡科技3 天前
告别粗放灌溉!让灌区管理智能化、节水化、精细化
大数据·人工智能·科技·物联网·信息可视化
light blue bird4 天前
组轴式执行引擎 ✅ 多线程调度组装组件
数据库·信息可视化·oracle·桌面端winform·多节点端·gdi图表绘制开发
Web - Anonymous5 天前
CSS+Vue3 + TS + Setup 10种生产级可视化循环动效合集(大屏高端交互、开箱复用)-附完整示例
前端·css·信息可视化
gnsnswa5 天前
数据分析报告写不好,可以从哪些能力开始补?
人工智能·网络协议·信息可视化·数据挖掘·数据分析·aigc·信息与通信
临床数据科学和人工智能兴趣组6 天前
RStudio的Console(控制台)是一个非常重要的组件
人工智能·机器学习·数据分析·r语言·r语言-4.2.1
kels88996 天前
单连接动态增减订阅:股票行情API后端降负载实战方案
开发语言·笔记·python·信息可视化·金融
小许同学记录成长6 天前
QGIS二次开发技术文档
图像处理·qt·信息可视化·无人机
初学者,亦行者7 天前
利用Pyecharts绘制堆叠柱状图
python·信息可视化·数据分析