Dodanie legendy kolorów do obrazu


Mam matrycę, którą zobrazowałem za pomocą
image (matrix)
. Czy mogę dodać kolorową legendę do mojego obrazu, tak jak ja, dodając legendę do fabuły?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Lub legendę można dostarczyć w ten sposób:
legend(grconvertX(0.5, "device"), grconvertY(1, "device"), 
c("0",".5","1"), fill = colMap[c(1, 10, 20)], xpd = NA)

gdzie grconvertX () i grconvertY () i xpd zapewniają, że legenda znajduje się poza obszarem kreślenia.
Wiarygodnym przykładem byłoby:
nsamples <- 20
mat <- rnorm(nsamples, .5, .15)
dim(mat) <- c(4, 5)
colMap <- colorRampPalette(c("red","white","blue" ))(nsamples)
image(1:4, 1:5, mat, col = colMap, ylab="", xlab="")
legend(grconvertX(0.5, "device"), grconvertY(1, "device"),
c("0",".5","1"), fill = colMap[c(1, 10, 20)], xpd = NA)

PS: Wiem, że to stara prośba i została rozwiązana. Jednak szukałem podobnej odpowiedzi i nie mogłem jej znaleźć. Ponieważ zawracam sobie głowę rozwiązaniem tego problemu, pomyślałem, że może ktoś inny też mógłby na tym skorzystać.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

obraz
w R to dość prosta funkcja kreśląca. Możesz spojrzeć na
fill.contour
, jeśli potrzebujesz funkcji, która automatycznie przydzieli miejsce na legendę. Lub spróbuj tego:
library(lattice)
levelplot(matrix)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Z pakietu
fields
możesz wypróbować
image.plot
. Ta funkcja jest oparta na zwykłym
obrazku
, ale zapewnia legendę dla obrazu.
library(fields)
x = 1:10
y = 1:15
z = outer( x,y,"+")
image.plot(x, y, z)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się