绘制许多叠加的线
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)
我有一个矩阵 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)