绘制每列的一行和x轴R的时间序列

时间:2016-07-01 10:16:04

标签: r ggplot2

您可以找到我的数据集here

根据这些数据,我希望绘制(每行一行):

x$y[,1]
x$y[,5]
x$y[,1]+x$y[,5]

因此,更清楚的是,最后,以下各项将用一行表示:

y0, 
z0, 
y0+z0

我的x轴(时间序列)来自x$t

我尝试了以下方法,但是时间序列变量存在问题,我无法弄清楚如何绘制它。我的代码是:

Time <- x$t
X0 <- x$y[,1]
Z0 <- x$y[,5]
X0.plus.Z0 <- X0 + Z0
xdf0 <- cbind(Time,X0,Z0,X0.plus.Z0)
xdf0.melt <- melt(xdf0, id.vars="Time")

ggplot(data = xdf0.melt, aes(x=Time, y=value)) + geom_line(aes(colour=Var2))

2 个答案:

答案 0 :(得分:0)

代码中的错误来自于使用melt应用于不是data.frame的对象。您应该像这样修改:

xdf0 <- cbind.data.frame(Time,X0,Z0,X0.plus.Z0)
xdf0.melt <- reshape2::melt(xdf0, id.vars="Time")
ggplot(data = xdf0.melt, aes(x=Time, y=value)) + geom_line(aes(colour=variable))

你没有拥有来完成melt过程,因为你有一条线要绘制,可以单独绘制它们

ggplot(data=xdf0) + aes(x=Time) +
  geom_line(aes(y=X0), col="red") +
  geom_line(aes(y=Z0), col="blue") +
  geom_line(aes(y=X0.plus.Z0))

但是,你没有得到传奇。

关于你的例子的评论:你试图绘制真正不同数量级的值,所以你真的看不到任何东西。

答案 1 :(得分:0)

怎么样

matplot(xdf0, type = 'l')