2011-07-31 17 views
13

Podczas wykonywania operacji macierzowych chciałbym móc zobaczyć, jakie są wyniki moich obliczeń, przynajmniej po to, aby uzyskać przybliżony obraz charakteru macierzy wchodzących i wychodzących z operacji.Jak łatwo zwizualizować matrycę?

Jak można wykreślić matrycę liczb rzeczywistych, tak że oś X reprezentuje kolumny, y oznacza wierszy, kolor lub rozmiar punktu reprezentuje wartość komórek?

Ostatecznie chciałbym wyświetlić wiele działek, np. po prawej i lewej stronie równania.

Oto przykładowy kod:

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) 

zmiana: od opublikowania na to pytanie, stwierdziliśmy, że istnieją wielkie przykłady tutaj: What techniques exists in R to visualize a "distance matrix"?

+0

Sprawdź także ten ostatni wpis. http://stackoverflow.com/questions/6883618/plotting-a-heat-map-for-an-upper-or-lower-triangular-matrix –

Odpowiedz

17

Można spróbować czegoś podobnego (dostosowanie parametrów do indywidualnych potrzeb)

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

produkujący coś podobnego

enter image description here

7

Zobacz ?image dla pojedynczej działki (Zauważ, że wiersz 1 będzie na dole) i ?rasterImage dla dodania 1 lub więcej reprezentacji do istniejącego wykresu. Możesz najpierw wykonać skalowanie lub inną transformację macierzy.

+0

to jest dokładnie to, czego szukam. Dzięki! – Abe

4

a nie odpowiedzi, ale dłuższy komentarz.

Pracowałem nad pakietem do wykreślania matryc przy użyciu grid.raster, ale nie jest on jeszcze gotowy do wydania. Twój przykład byłoby czytać,

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

layout

Uważam, że pisanie niestandardowych funkcji było prawdopodobnie łatwiejsze niż szczypanie 10s parametrów bazowych w lattice lub grafikę i ggplot2 brakuje pewną kontrolę nad osiami.

Jednak pisanie funkcji graficznych od podstaw to także odkrywanie nietrywialne rzeczy jak układ i pozycjonowania; Mam nadzieję, że pakiety Hadleya scales i guides mogą to ułatwić. Dodam funkcje do gridExtra, gdy ogólny projekt wydaje się być bardziej stabilny i stabilny.

Powiązane problemy