如何制作多行时间序列数据?

How can I make time series data with multiple lines?

我想及时绘制甘蔗、椰子和水稻的产量。但我得到了这个输出:

![我的输出图][1]

您的数据应该首先 aggregated,因为它有多个条目用于相同的日期和作物,我假设您希望 sum 作为聚合函数。在数据参数中,我使用 transform 来应用 ISOdate(参见 other answer),并为 pchcolor 定义了一个数值向量用于绘图。

a <- aggregate(Yield ~ ., 
               transform(data, Year=ISOdate(Year, 1, 1, 0),
                               clr=as.integer(factor(Crop)) + 1), FUN=sum) 

然后,plot 和空基图,我建议 logarithmic 可能适合你的数据。接下来,使用 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("")