绘制许多叠加的线

Graph many superimposed lines

我有一个矩阵 mlinerror,其中每一列都是一个时间序列,从第 1 行开始到第 5 行结束。

我想制作一个图表,其中有许多叠加的 alpha 混合线,最好是每条线都有不同的颜色。

这是我的代码:

plt <- ggplot(df)

for (i in 1:99) {
    plt <- plt + geom_line(aes(x=1:5, y=mlinerror[,i]), alpha=0.1)
}

出于某种原因,我可以为每一列手动复制 plt <- plt + geom_line(aes(x=1:5, y=mlinerror[,i]), alpha=0.1) 行(必须复制 99 次)并绘​​制所有行的图形,但这种合成不适用于我的循环方法。

制作多线图应该怎么做?

如果将数据重塑为长格式,则可以更轻松地完成此操作。这是一个假数据的例子:

library(reshape2)

# Create fake data with 100 time series columns plus a time variable
set.seed(30)
dat = data.frame(time=1:5, replicate(100,cumsum(rnorm(5))))

# Melt into long format
dat.m = melt(dat, id.var="time")

# Plot with each individual time series in a different colour
ggplot(dat.m, aes(time, value, colour=variable, group=variable)) +
  geom_line(alpha=0.2, show_guide=FALSE)