matplot()
使按列绘制矩阵/二维数组变得容易(也适用于数据帧):
a <- matrix (rnorm(100), c(10,10))
matplot(a, type='l')
使用ggplot2是否有类似的情况,或者ggplot2需要先将数据melted
放入数据帧中?
此外,是否有一种方法可以使用单独的矢量(length=ncol(a)
)任意地为矩阵列的子集着色/设置样式?
对于这个特定的例子,可能会简单一点:
library(ggplot2)
a <- matrix (rnorm(100), c(10,10))
sa <- stack(as.data.frame(a))
sa$x <- rep(seq_len(nrow(a)), ncol(a))
qplot(x, values, data = sa, group = ind, colour = ind, geom = "line")
过去提出的问题的答案通常在指定组参数之前建议熔体策略:
require(reshape2); require(ggplot2)
dataL = melt(a, id="x")
qplot(a, x=Var1, y=value, data=dataL, group=Var2)
p <- ggplot(dataL, aes_string(x="Var1", y="value", colour="Var2", group="Var2"))
p <- p + geom_line()
只是稍微简化了前面所说的内容(矩阵被包裹在c()中,使其成为向量):
require(ggplot2)
a <- matrix(rnorm(200), 20, 10)
qplot(c(row(a)), c(a), group = c(col(a)), colour = c(col(a)), geom = "line")