R语言 ggplot2实现时间序列的可视化

R语言 ggplot2实现时间序列的可视化

在这篇文章中,我们将讨论用R编程语言中的ggplot2包进行时间序列的可视化。

一个时间序列是按时间轴的顺序列出的一系列数据点,即以日期、年或月为形式的轴之一。一个时间序列是一个连续的等间隔的时间点的序列。时间序列分析由分析时间序列数据的方法组成,以从数据中检索出一些有意义的见解。时间序列数据分析在许多行业中变得非常重要,如金融业、制药业、社交媒体公司、网络服务提供商、研究等,因为它有助于根据过去数据的趋势预测未来事件。

为了更好地了解数据,我们需要一些工具来将其可视化。R编程语言在ggplot2包中提供了大量的工具来实现数据的可视化。我们可以使用geom_line()函数,用线段图将时间序列数据可视化。

语法

ggplot(dataframe , aes(x, y)) + geom_line()

参数

  • dataframe: 决定了用于绘制图表的数据框架变量
  • x: 决定了时间变量向量
  • y: 决定时间向量的数据变量向量。

例子: 一个描绘时间序列数据的基本折线图。

使用中的数据框架 :这里

# load library ggplot2
library(ggplot2)
  
# create timeseries dataframe
dataframe <- data.frame(read.csv("sample2.csv"))
  
# create plot
ggplot(dataframe, aes(x=Date, y=High, group = 1)) +
  geom_line()+
# check.overlap avoids label overlapping
scale_x_discrete(guide = guide_axis(check.overlap = TRUE))

输出

用R语言中的ggplot2实现时间序列的可视化

数据标签格式

由于其中一个轴的数据是以日期的形式出现的,所以我们可以用多种形式的日期来格式化它。我们可以使用 scale_x_date() 函数来选择 X 轴上显示的格式。

语法

scale_x_date(date_labels = Date-format-identifiers)

这里,日期格式标识符是。

标识符 解释 例子
%d 日是一个数字 21
%a 简称工作日
%A 长式工作日 星期一
%m 月为数字 10
%b 简称月 10月
%B 长式的月份 10月
%y 2位数的年份 21
%Y 4位数的年份 2021

例子: 一个使用数据标签标识符的时间序列,在长格式中只显示月份。

# load library ggplot2
library(ggplot2)
  
# create timeseries dataframe
dataframe <- data.frame(
                      Date = as.Date("2021-10-21") - 0:364,
                      High = runif(365) + seq(-140, 224)^2 / 10000)
  
# create plot
ggplot(dataframe, aes(x=Date, y=High, group = 1)) +
  geom_line()+
  
# check.overlap avoids label overlapping
scale_x_discrete(guide = guide_axis(check.overlap = TRUE))+
  
# change month format to long-form month
scale_x_date(date_labels = "%B")

输出

用R语言中的ggplot2实现时间序列的可视化

断点和小断点

我们可以使用ggplot2的scale_x_date()函数的date_breaks和date_minor_breaks参数,在图中使用小断点或大断点来创建不同的断点。

语法

scale_x_date(date_breaks, date_minor_breaks)

例子: 一个基本的时间序列图,有手动日期中断和次要日期中断。

# load library ggplot2
library(ggplot2)
  
# create timeseries dataframe
dataframe <- data.frame(
                      Date = as.Date("2021-10-21") - 0:364,
                      High = runif(365) + seq(-140, 224)^3 / 10000)
  
# create plot
ggplot(dataframe, aes(x=Date, y=High, group = 1)) +
  geom_line()+
  
# check.overlap avoids label overlapping
scale_x_discrete(guide = guide_axis(check.overlap = TRUE))+
  
# change month format to long-form month
# date_breaks and date_minor_breaks for axis break
scale_x_date(date_labels = "%B",date_breaks = "1 week")

输出

用R语言中的ggplot2实现时间序列的可视化

限制轴数据

在处理大型数据集时,我们可能需要关注一个小的时间段。为此,我们使用scale_x_date()函数的限制选项来选择数据中的一个时间段。

语法

scale_x_date(limit)

例子: 一个从2021年10月到2021年7月的有限数据图。

# load library ggplot2
library(ggplot2)
  
# create timeseries dataframe
dataframe <- data.frame(
                      Date = as.Date("2021-10-21") - 0:364,
                      High = runif(365) + seq(-140, 224)^2 / 10000)
  
# create plot
ggplot(dataframe, aes(x=Date, y=High, group = 1)) +
  geom_line()+
  
# check.overlap avoids label overlapping
scale_x_discrete(guide = guide_axis(check.overlap = TRUE))+
  
# limit axis data
scale_x_date(limit=c(as.Date("2021-09-01"),as.Date("2021-10-21")))

输出

用R语言中的ggplot2实现时间序列的可视化

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程