ggplot2:两个时间序列,在一个图中具有不同和不规则的日期间隔

时间:2013-03-07 08:33:30

标签: r ggplot2

使用ggplot2包,我想获得一个包含两个在不同日期有数据点的时间序列的图。

例如,一个数据框看起来像:

date1, value1  
2010-01-05, 2921.74  
2010-01-08, 2703.89  
2010-01-14, 3594.21  
2010-01-20, 3659.22  

其他数据框架如

date2, value2  
2010-01-01, 285.85  
2010-01-02, 229.20  
2010-01-05, 333.91  
2010-01-06, 338.27  
2010-01-07, 272.85  
2010-01-08, 249.04  
2010-01-09, 240.07  
2010-01-10, 255.06  
2010-01-11, 275.42  
2010-01-12, 252.39  

我想在同一个图中绘制这两个时间序列,X轴上的日期和Y轴上的值。使用{base} plot非常容易,但我想用ggplot来做。

1 个答案:

答案 0 :(得分:1)

您只需使用两个geom_pointdata个参数:

ggplot(aes(x = date, y = value)) + geom_point(data = df1) + geom_point(data = df2)

这假设您的数据集名为df1df2,并且它们具有相同的列名称。

更容易组合两个数据集,并添加一个识别列:

df1$id = "one"
df2$id = "two"
df = rbind(df1, df2)
ggplot(df, aes(x = date, y = value, color = id)) + geom_point()

最后一个解决方案更符合ggplot2的理念。请注意,此方法对geom_line的工作方式类似。

一个例子:

ggplot(diamonds, aes(x = carat, y = depth, color = cut)) + geom_point()

enter image description here