Frage

Ich habe dieses Problem. Ich habe eine Heatmap (aber ich nehme an, das gilt für jede Handlung), aber ich muss meine Y-Achse widerspiegeln.

Ich habe hier einen Beispielcode erhalten:

library(gstat)
x <- seq(1,50,length=50)
y <- seq(1,50,length=50)
z <- rnorm(1000)
df <- data.frame(x=x,y=y,z=z)
image(df,col=heat.colors(256)) 

Dies erzeugt die folgende HeatmapFirst heatmapAber ich brauche die y-Achse gespiegelt. Beginnend mit 0 oben und 50 unten. Hat jemand eine Ahnung, was ich tun muss, um dies zu ändern?mirrored heatmap

War es hilfreich?

Lösung

Siehe die Help -Seite für? Plot.default, was angibt

XLIM: Die x begrenzt (x1, x2) des Diagramms. Beachten Sie, dass 'x1> x2' zulässig ist und zu einer "umgekehrten Achse" führt.

library(gstat)
x <- seq(1,50,length=50)
y <- seq(1,50,length=50)
z <- rnorm(1000)
df <- data.frame(x=x,y=y,z=z)

So

image(df,col=heat.colors(256), ylim = rev(range(y)))

Andere Tipps

Funktioniert das für Sie (es ist jedoch ein bisschen ein Hack)?

df2<-df
df2$y<-50-df2$y #reverse oredr
image(df2,col=heat.colors(256),yaxt="n") #avoid y axis
axis(2, at=c(0,10,20,30,40,50), labels=c(50,40,30,20,10,0)) #draw y axis manually

Die Revaxis -Funktion im Plotrix -Paket "kehrt den Sinn von entweder oder sowohl die" x "und" y "-Axes um. Es löst Ihr Problem nicht (Nicks Lösung ist die richtige), kann jedoch nützlich sein, wenn Sie eine Streuung mit umgekehrten Achsen zeichnen müssen.

ich würde ... benutzen rev Like SO:

df <- data.frame(x=x,y=rev(y),z=z)

Wenn Sie sich nicht bewusst waren, beachten Sie das df ist eigentlich eine Funktion. Vielleicht möchten Sie beim Überschreiben vorsichtig sein. Wenn du rm(df), Die Dinge werden wieder normal.

Vergessen Sie nicht, die y -Achse neu zu streichen, wie Nick vorschlägt.

Für die vertikale Achse, die in Abwärtsrichtung zunimmt, gab ich zwei Möglichkeiten (zwei verschiedene Antworten) für die folgende Frage:

R - Bild einer Pixelmatrix?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top