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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage