如何在 r 中绘制时间序列(附示例)


通常,您可能希望在 R 中绘制时间序列,以可视化时间序列中的值如何随时间变化。

本教程介绍如何使用ggplot2数据可视化库快速完成此操作。

R 中的基本时间序列绘图

假设我们在 R 中有以下数据集:

 #create dataset
df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:99,
                 sales = runif (100, 10, 500) + seq (50, 149)^2)

#view first six rows
head(df)

        dirty date
1 2021-01-01 2845.506
2 2020-12-31 2837.849
3 2020-12-30 3115.517
4 2020-12-29 2847.161
5 2020-12-28 3374.619
6 2020-12-27 3182.005

我们可以使用以下代码使用 ggplot2 创建该数据集的基本时间序列图:

 library (ggplot2)

#create time series plot
p <- ggplot(df, aes (x=date, y=sales)) +
       geom_line()

#display time series plot
p

R 中的基本时间序列绘图

设置 X 轴上日期的格式

我们可以使用scale_x_date() *函数来格式化沿绘图x轴显示的日期。该函数采用以下参数:

  • %d:日期为 0 到 31 之间的数字
  • %a:缩写工作日(例如“Tue”)
  • %A:一周中未缩写的日期(例如“Tuesday”)
  • %m :0 到 12 之间的月份
  • %b:月份缩写(例如“Jan”)
  • %B:未缩写的月份(例如“January”)
  • %y: 2 位数年份(例如“21”)
  • %Y: 4 位数年份(例如“2021”)
  • %W:一年中的第几周,介于 0 和 52 之间

*为了使该函数正常工作,x 轴变量必须是日期变量。如果还没有,您可以使用as.Date( variable_name)快速将其转换为日期。

以下代码显示了如何在实践中使用这些格式之一:

 p + scale_x_date ( date_labels = " %b %Y ") 

在 R 中绘制具有自定义日期的时间序列

您还可以使用date_breaks参数沿 x 轴添加更频繁(或不频繁)的中断。例如,我们可以沿 x 轴每两周显示一次日期:

 p + scale_x_date ( date_breaks = " 2 week ") 

R 中 x 轴上日期跳跃的时间序列

我们还可以使用以下参数轻松倾斜 x 轴标签:

 p + theme ( axis.text.x = element_text (angle= 50 , hjust= 1 )) 

ggplot2中倾斜X轴标签

最后,我们可以更改主题、轴标签和标题,以使时间序列图更具视觉吸引力:

 p <- ggplot(df, aes (x=date, y=sales)) +
       geom_line( color =" turquoise4 ") +
       theme_minimal() + 
       labs(x="", y=" Sales ", title=" Total Sales (Past 100 Days) ") +
       theme( plot.title = element_text (hjust=0.5, size=20, face=" bold "))

p 

R 中具有自定义 ggplot 主题的时间序列

其他资源

最佳 ggplot2 主题的完整指南
ggplot2 标题完整指南
如何在 ggplot2 中创建并排图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注