R: Spiegel Y-Achse aus einer Handlung
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 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?
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: