Ggplot2 эквивалент matplot(): построить матрицу/массив по столбцам?

matplot() позволяет легко построить матричный/двумерный массив по столбцам (также работает с кадрами данных):

a <- matrix (rnorm(100), c(10,10))
matplot(a, type='l')

Есть ли что-то подобное с помощью ggplot2, или ggplot2 требует, чтобы данные были melted в первой части данных?

Также существует способ произвольного подмножества цветов/стилей столбцов матрицы с использованием отдельного вектора (length=ncol(a))?

Ответы

Ответ 1

Может быть, немного проще для этого конкретного примера:

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

Ответ 2

Ответы на поставленные ранее вопросы в целом рекомендовали стратегию таяния, прежде чем указывать параметр группы:

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

Ответ 3

Просто несколько упрощая то, что было сказано ранее (матрицы заключены в 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")