2011-07-31 27 views
13

Al hacer operaciones con la matriz, me gustaría poder ver cuáles son los resultados de mis cálculos, al menos para tener una idea aproximada de la naturaleza de las matrices que entran y salen de la operación.¿Cómo visualizar fácilmente una matriz?

¿Cómo puedo trazar una matriz de números reales, de modo que el eje x represente columnas, y represente filas y el color o el tamaño de un punto represente el valor de la celda?

En última instancia, me gustaría mostrar varias parcelas, p. los lados derecho e izquierdo de una ecuación.

Aquí es un código de ejemplo:

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) 

actualización desde la publicación de esta pregunta, he encontrado que hay algunos ejemplos aquí: What techniques exists in R to visualize a "distance matrix"?

+0

Echa un vistazo a esta publicación reciente, también. http://stackoverflow.com/questions/6883618/plotting-a-heat-map-for-an-upper-or-lower-triangular-matrix –

Respuesta

17

Usted podría intentar algo así como (el ajuste de los parámetros a sus necesidades particulares)

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

producir algo así como

enter image description here

7

Ver ?image para una sola parcela (Tenga en cuenta que la fila 1 estará en la parte inferior) y ?rasterImage para agregar 1 o más representaciones a una gráfica existente. Es posible que desee hacer una escalada u otra transformación en la matriz primero.

+0

que es más o menos lo que estoy buscando. ¡Gracias! – Abe

4
No

una respuesta, pero un comentario más largo.

He estado trabajando en un paquete para trazar matrices usando grid.raster, pero aún no está listo para su lanzamiento. Su ejemplo sería el siguiente,

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

layout

He encontrado que la escritura de funciones personalizadas probablemente era más fácil que ajustar 10s de parámetros en lattice o de base de gráficos y ggplot2 carece de un cierto control sobre los ejes.

Sin embargo, escribir funciones de gráficos desde cero también significa reinventar cosas no triviales como el diseño y el posicionamiento; con suerte, los paquetes scales y guides de Hadley pueden hacer esto más fácil. Agregaré las funciones a gridExtra cuando el diseño general parezca sólido y más estable.

Cuestiones relacionadas