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")
相关推荐
财经资讯数据_灵砚智能7 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月5日
人工智能·python·信息可视化·自然语言处理·ai编程
Highcharts.js20 小时前
数据处理新革命产品发布:Highcharts Orbit 公测-开启图表数据分析的新维度
信息可视化·数据挖掘·数据分析·highcharts
知识分享小能手1 天前
R语言入门学习教程,从入门到精通,R语言局部整体型数据可视化(10)
学习·信息可视化·r语言
枫叶丹41 天前
【HarmonyOS 6.0】CANN Kit 新增支持获取 AI 模型 Dump 维测数据功能详解
开发语言·人工智能·华为·信息可视化·harmonyos
知识分享小能手2 天前
R语言入门学习教程,从入门到精通,R语言数据计算与分组统计(9)
开发语言·学习·r语言
light blue bird2 天前
设备数据变化上传图表数据汇总组件
大数据·前端·信息可视化
码界筑梦坊2 天前
116-基于Flask的健身房会员锻炼数据可视化分析系统
python·信息可视化·数据分析·flask·毕业设计
财经资讯数据_灵砚智能2 天前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年5月2日
人工智能·python·信息可视化·自然语言处理·ai编程
财经资讯数据_灵砚智能2 天前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月3日
大数据·人工智能·python·信息可视化·自然语言处理