Ich habe eine Matrix, die ich ein Bild von image(matrix)
gemacht habe. Gibt es eine Wegstrecke, um meinem Bild eine Legende der Farben hinzuzufügen, wie wenn ich eine Legende zum Plotten hinzufüge?Hinzufügen einer Farblegende zu einem Bild
Antwort
image
in R ist eine ziemlich grundlegende Zeichenfunktion. Sie möchten vielleicht filled.contour
betrachten, wenn Sie eine Funktion haben möchten, die automatisch Platz für eine Legende zuweist. Oder versuchen Sie dies:
library(lattice)
levelplot(matrix)
oder die Legende könnte so zur Verfügung gestellt werden:
legend(grconvertX(0.5, "device"), grconvertY(1, "device"),
c("0",".5","1"), fill = colMap[c(1, 10, 20)], xpd = NA)
wo grconvertX() und grconvertY() und xpd stellt sicher, dass die Legende außerhalb des Plotten Region. Eine plausible Beispiel wäre:
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)
P. S .: Ich weiß, es ist ein alter Wunsch und es gelöst ist. Ich suchte jedoch nach einer ähnlichen Antwort und konnte sie nicht finden. Da ich mich darum kümmerte, dieses Problem zu lösen, dachte ich, vielleicht könnte auch jemand anderes davon profitieren.
Sehr hilfreich. Für ein Plot mit mehreren Zahlen habe ich 'par (mfrow = c (1,1), neu = TRUE, fig = c (0,1,0,1))' 'vor der Legendenaussage und stattdessen" nfc "verwendet als "Gerät". – jvbraun
Aus dem Paket fields
können Sie versuchen image.plot
. Diese Funktion basiert auf dem regulären image
, bietet jedoch eine Zahlenlegende.
library(fields)
x = 1:10
y = 1:15
z = outer(x,y,"+")
image.plot(x, y, z)
Diese Frage ist zu vage, um richtig beantwortet zu werden. Bitte fügen Sie Programmiersprachen, Plattformen, Bibliotheken usw. hinzu, die Sie verwenden. – Jason
@Jason r ist eine Programmiersprache! –