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")
相关推荐
Bioinfo Guy8 小时前
高分Panel复现系列|甲基化分型可视化:怎么画这样的ComplexHeatmap分块热图
r语言·生物信息学·生信可视化
爱吃大芒果1 天前
高密度数据可视化渲染:基于 ArkUI Grid 的状态热力图组件开发图纸
华为·信息可视化·harmonyos
许彰午2 天前
78_Python数据可视化matplotlib
python·信息可视化·matplotlib
2601_963645922 天前
【2026最新】MATLAB教程(附安装包,非常详细)
开发语言·matlab·信息可视化
Geek-Chow2 天前
微服务认证与授权:06 — Keycloak / IdP
微服务·信息可视化·架构
2601_962851742 天前
计算机毕业设计之基于YOLOV10的低光照目标检测算法研究与实现
大数据·算法·yolo·目标检测·信息可视化·cnn·课程设计
多年小白2 天前
全球 AI 行业近三年市场增长数据深度分析报告(2023-2026)
人工智能·信息可视化
酷炫的水壶3 天前
项目背景:水质数据与关键指标
信息可视化
我是小a3 天前
鸿蒙 ArkUI 数据可视化图例对照表:组件化设计与实现
华为·信息可视化·harmonyos·鸿蒙·鸿蒙系统
2601_962846494 天前
计算机毕业设计之基于大数据加护的国产美妆行业发展状况研究
大数据·人工智能·深度学习·信息可视化·课程设计