如何在 R 中使用 ggplot2 绘制多个时间序列?

r programmingserver side programmingprogramming更新于 2025/6/27 8:07:17

对于某个时间点,我们可能有多个时间序列数据,例如多个城市的天气情况、多种产品的价格变化、不同地点的需求预期,或者任何随时间变化且针对多个事物或地点进行测量的数据。如果我们有此类时间序列数据,则需要将这些数据绘制在一个图中,这可以借助 ggplot2 包中的 geom_line 函数来完成。

示例

考虑以下数据框 −

> x1<-1:10
> y1<-rnorm(10)
> df1<-data.frame(x1,y1)
> df1

输出

   x1 y1
1 1 -0.1165387
2 2 -0.9084062
3 3 0.4696637
4 4 1.5597274
5 5 -0.1101060
6 6 1.4060137
7 7 -0.8310496
8 8 -0.2272508
9 9 -0.2153751
10 10 0.9463936

示例

> x2<-1:10
> y2<-rnorm(10)
> df2<-data.frame(x2,y2)
> df2

输出

   x2 y2
1 1 -1.0545341
2 2 0.3791710
3 3 -1.5611182
4 4 -1.1212776
5 5 -0.7441233
6 6 -0.5665797
7 7 -1.1247473
8 8 -0.3644471
9 9 0.8933615
10 10 0.8809048

示例

> x3<-1:10
> y3<-rnorm(10)
> df3<-data.frame(x3,y3)
> df3

输出

   x3 y3
1 1 0.53114394
2 2 0.76319036
3 3 -0.09477086
4 4 0.54543062
5 5 1.57865385
6 6 -0.72168934
7 7 0.57577687
8 8 0.03108040
9 9 -0.97440541
10 10 -0.09145164

使用 ggplot2 为上述三个数据框创建单个时间序列图 −

> library(ggplot2)
>
ggplot(df1,aes(x1,y1))+geom_line(color="blue")+geom_line(aes(x2,y2),color="black")+
geom_line(aes(x3,y3),color="green")+xlab("Time")+ylab("Rate")

输出


相关文章