使用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来做。
答案 0 :(得分:1)
您只需使用两个geom_point
个data
个参数:
ggplot(aes(x = date, y = value)) + geom_point(data = df1) + geom_point(data = df2)
这假设您的数据集名为df1
和df2
,并且它们具有相同的列名称。
更容易组合两个数据集,并添加一个识别列:
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()