23

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

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

单击此处获取数据集 csv

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

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

代码的输出如下所示:

谁能指出我正确的方向?我在以前的线程中找不到任何东西。

问题已解决,见下文。

我想知道的另外一件事:

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

4

1 回答 1

47

如果您的数据被称为这样的df东西:

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

在此处输入图像描述

所以基本上在我的代码中,当我使用aes()im 时告诉它 x 轴是Yeary 轴value,然后colour/groupingvariable.

melt()功能是让您的数据以想要的格式ggplot2 。等的一大列year,然后当你告诉它为你的variable.

于 2012-11-10T17:14:07.710 回答