Ich möchte eine Heatmap mit ggplot erstellen, aber ich möchte die y-Achse nach der Anzahl der Beobachtungen ordnen. Ordne den Datenrahmen nach der Spalte N an und füge dem Gruppennamen die Anzahl der Beobachtungen hinzu, so dass er in der Achsenbeschriftung erscheint. Wenn ich die Daten grafisch darstelle, sortiert sie sie basierend auf dem Gruppennamen neu. Gibt es eine Möglichkeit, Faktorstufen basierend auf der Reihenfolge im Datenrahmen festzulegen?Wie setze ich Faktorstufen in der Reihenfolge, in der sie in einem Datenrahmen erscheinen?
Einige Daten:
library(dplyr)
library(tidyr)
library(ggplot2)
school <- c("School A", "SChool B", "School C", "School D", "School E", "School F")
N <- c(25,28,12,22,30,25)
var1 <- c(1,0,1,1,0,1)
var2 <- c(0,0,0,1,0,1)
var3 <- c(0,1,0,1,1,1)
df <- tbl_df (data.frame (school, N, var1, var2, var3))
df <- arrange (df, N) %>%
gather (variable, value, var1:var3)
df$school <- paste0 (df$school, " (", df$N, ")")
df <- select (df, school, variable, value)
ggplot(df, aes(variable, school)) + geom_tile(aes(fill = value), colour = "white") +
scale_fill_gradient(low = "white",high = "steelblue")
Letztlich möchte ich die Reihenfolge der Schulen sein:
Schule C (12)
Schule D (22)
Schule A (25)
Schule F (25)
Schule B (28)
Schule E (30)
Während ich dies für mehrere Plots tun möchte Ich möchte einen Weg finden, dies automatisch zu tun und müssen nicht erneut eingestellt Faktorstufen jedes Mal .
Dank @konvas - funktionierte perfekt. – Greg