Подтвердить что ты не робот

Как легко визуализировать матрицу?

При выполнении операций с матрицами я хотел бы видеть, каковы результаты моих вычислений, по крайней мере, чтобы получить приблизительное представление о характере матриц, входящих и выходящих из операции.

Как я могу построить матрицу реальных чисел, так что ось x представляет столбцы, y представляет строки, а цвет или размер точки представляет значение ячейки?

В конечном счете, я хотел бы отображать несколько графиков, например. правая и левая стороны уравнения.

Вот пример кода:

a <- matrix(rnorm(100), ncol = 10)
b <- diag(1,10)
c <- a*b

par(mfrow = c(1,3))
plot.matrix.fn <- function(m) {
   #enter answer to this question here
}
lapply(list(a,b,c), plot.matrix.fn)

update: после публикации этого вопроса я обнаружил, что здесь есть несколько отличных примеров: Какие существуют методы в R, чтобы визуализировать "матрицу расстояний" ?

4b9b3361

Ответ 1

Вы можете попробовать что-то вроде (корректировка параметров для ваших конкретных потребностей)

   image(t(m[nrow(m):1,] ), axes=FALSE, zlim=c(-4,4), col=rainbow(21))

производя что-то вроде

enter image description here

Ответ 2

См. ?image для одного графика (обратите внимание, что строка 1 будет внизу) и ?rasterImage для добавления 1 или более изображений в существующий график. Вы можете сначала сделать какое-то масштабирование или другое преобразование в матрице.

Ответ 3

Не ответ, а более длинный комментарий.

Я работал над пакетом для построения матриц с использованием grid.raster, но он еще не совсем готов к выпуску. Ваш пример будет читаться,

library(gridplot)
row_layout(a, b, c)

layout

Я обнаружил, что писать пользовательские функции, вероятно, было проще, чем настроить 10s параметров в lattice или базовой графике, а ggplot2 не имеет никакого контроля над осями.

Однако запись графических функций с нуля также означает переосмысление нетривиальных вещей, таких как макет и позиционирование; надеюсь, пакеты Hadley scales и guides могут сделать это проще. Я добавлю функции в gridExtra, когда общий дизайн кажется звуковым и более стабильным.