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