Как легко визуализировать матрицу? - PullRequest
14 голосов
/ 31 июля 2011

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

Как можно построить матрицу действительных чисел, чтобы ось 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)

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

Ответы [ 3 ]

18 голосов
/ 31 июля 2011

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

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

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

enter image description here

7 голосов
/ 31 июля 2011

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

4 голосов
/ 02 ноября 2011

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

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

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

layout

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

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

...