ggplot2: Mit gtable Streifenbeschriftungen für facet_grid @ an den oberen Rand des Bedienfelds verschieb
Ich erstelle eine Grafik mitfacet_grid
, um eine kategoriale Variable auf der y-Achse zu facettieren. Ich habe mich entschieden, @ nicht zu verwendfacet_wrap
weil ich es brauchespace = 'free'
undlabeller = label_parsed
. Meine Beschriftungen sind lang und ich habe eine Legende auf der rechten Seite. Daher möchte ich die Beschriftungen von der rechten Seite des Bedienfelds an die obere Seite des Bedienfelds verschieben.
Hier ist ein Beispiel, um zu zeigen, wo ich stecke.
library(ggplot2)
library(gtable)
mt <- ggplot(mpg, aes(x = cty, y = model)) + geom_point() +
facet_grid(manufacturer ~ ., scales = 'free', space = 'free') +
theme_minimal() +
theme(panel.margin = unit(0.5, 'lines'), strip.text.y = element_text(angle = 0))
Now Ich möchte den Streifentext von rechts in jedes Feld oben in jedes Feld verschieben. Ich kann die Grobs für die Streifenetiketten speichern und sie aus dem Plot entfernen:
grob <- ggplotGrob(mt)
strips.y <- gtable_filter(grob, 'strip-right')
grob2 <- grob[,-5]
Aber jetzt stecke ich fest, wenn es um @ gerbind
-die Grobs zurückschieben, sodass die Beschriftungen oben auf den Feldern angezeigt werden.
Eine andere mögliche Lösung wäre, @ zu verwendfacet_wrap
und verkleinere dann die Panels wie in einer anderen Frage besprochen, aber in diesem Fall müsste ich die Bezeichnungen auf den Facetten manuell ändern, da es kein @ gilabeller = label_parsed
zumfacet_wrap
.
Ich würde mich über Vorschläge zu beiden Ansätzen freuen!
Danke fürs Lesen
Tom