如何制作多行时间序列数据?
How can I make time series data with multiple lines?
我想及时绘制甘蔗、椰子和水稻的产量。但我得到了这个输出:
![我的输出图][1]
您的数据应该首先 aggregate
d,因为它有多个条目用于相同的日期和作物,我假设您希望 sum
作为聚合函数。在数据参数中,我使用 transform
来应用 ISOdate
(参见 other answer),并为 pch
和 color
定义了一个数值向量用于绘图。
a <- aggregate(Yield ~ .,
transform(data, Year=ISOdate(Year, 1, 1, 0),
clr=as.integer(factor(Crop)) + 1), FUN=sum)
然后,plot
和空基图,我建议 log
arithmic 可能适合你的数据。接下来,使用 by
在作物上循环 lines
。最后放个好看的legend
就这样了
这是一个基本版本:
plot(Yield ~ Year, a, log='y', type='n')
by(a, a$Crop, \(x) with(x, lines(Yield ~ Year, type='b', col=clr, pch=clr)))
legend('right', legend=unique(data$Crop), col=unique(a$clr), pch=unique(a$clr))
ggplot(data, aes(x = Year, y = Yield, color = Crop, group = Crop)) + geom_smooth() + xlab("")
我想及时绘制甘蔗、椰子和水稻的产量。但我得到了这个输出:
![我的输出图][1]
您的数据应该首先 aggregate
d,因为它有多个条目用于相同的日期和作物,我假设您希望 sum
作为聚合函数。在数据参数中,我使用 transform
来应用 ISOdate
(参见 other answer),并为 pch
和 color
定义了一个数值向量用于绘图。
a <- aggregate(Yield ~ .,
transform(data, Year=ISOdate(Year, 1, 1, 0),
clr=as.integer(factor(Crop)) + 1), FUN=sum)
然后,plot
和空基图,我建议 log
arithmic 可能适合你的数据。接下来,使用 by
在作物上循环 lines
。最后放个好看的legend
就这样了
这是一个基本版本:
plot(Yield ~ Year, a, log='y', type='n')
by(a, a$Crop, \(x) with(x, lines(Yield ~ Year, type='b', col=clr, pch=clr)))
legend('right', legend=unique(data$Crop), col=unique(a$clr), pch=unique(a$clr))
ggplot(data, aes(x = Year, y = Yield, color = Crop, group = Crop)) + geom_smooth() + xlab("")