繁体   English   中英

相当于matplot()的ggplot2:按列绘制矩阵/数组?

[英]ggplot2 equivalent of matplot() : plot a matrix/array by columns?

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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM