绘制许多叠加线

时间:2015-03-17 17:03:02

标签: r ggplot2

我有一个矩阵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次)并且它会绘制所有行,但此合成不适用于我的循环方法。

如何制作多线图?

1 个答案:

答案 0 :(得分:2)

如果将数据重新整形为长格式,则可以更轻松地执行此操作。这是假数据的一个例子:

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)

enter image description here