我有一个由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()
以下是代码输出的内容:
有人能指出我正确的方向吗?我以前的帖子里找不到任何东西。
问题已解决,见下文。
我想知道另外一件事:
是否可以在图中添加一条额外的线,它代表所有变量在时间上的平均值,并在该线下方和上方进行一些平滑以表示各个变化?
答案 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()
所以基本上在我的代码中,当我使用aes()
我告诉它x轴是Year
时,y轴是value
然后是colour
/ { {1}}位于grouping
。
variable
功能是以melt()
格式获取您的数据。 ggplot2
等的一个大栏目,当你告诉它为你的year
分开绘制时,你会有效地拆分。