在ggplot中绘制多个时间序列

时间:2012-11-10 16:54:53

标签: r ggplot2

我有一个由10个变量组成的时间序列数据集。

我想创建一个时间序列图,其中每个10变量随着时间的推移在同一图表上以不同的颜色绘制。值应位于Y轴上,日期应位于X轴上。

数据集csv的

Click Here

这是我一直在使用的(可能是错误的)代码:

c.o<-read.csv(file="co.csv",head=TRUE)
ggplot(c.o, aes(Year, a, b, c, d, e,f))+geom_line()

以下是代码输出的内容:

有人能指出我正确的方向吗?我以前的帖子里找不到任何东西。

问题已解决,见下文。

我想知道另外一件事:

是否可以在图中添加一条额外的线,它代表所有变量在时间上的平均值,并在该线下方和上方进行一些平滑以表示各个变化?

1 个答案:

答案 0 :(得分:38)

如果您的数据被称为df,请执行以下操作:

library(ggplot2)
library(reshape2)
meltdf <- melt(df,id="Year")
ggplot(meltdf,aes(x=Year,y=value,colour=variable,group=variable)) + geom_line()

enter image description here

所以基本上在我的代码中,当我使用aes()我告诉它x轴是Year时,y轴是value然后是colour / { {1}}位于grouping

variable功能是以melt()格式获取您的数据。 ggplot2等的一个大栏目,当你告诉它为你的year分开绘制时,你会有效地拆分。