Ich habe den folgenden Code, der zwei PDF-Dateien erzeugt, die Diagramme zum aktuellen Arbeitsverzeichnis enthalten:
%Vor%Die Diagramme sehen so aus:
Ich habe folgende Fragen:
Vielen Dank, alle!
Soweit ich das beurteilen kann, hat Ihr p1 keine Legende - daher gibt es keine zu extrahierende Legende und somit keine Legende, die im Aufruf von grid.arrange
gezeichnet werden kann.
Hier ist ein einfacheres Beispiel. Es sollte dich beginnen.
BEARBEITEN: Code-Update für ggplot2 Version 0.9.3.1
%Vor% Beachten Sie, wie widths
die Breite der Legende verwendet. Das Ergebnis ist:
Der Haupttitel und der Titel der globalen Y-Achse wurden mit vjust
positioniert. Wenn Sie möchten, dass der Titel der globalen Y-Achse mehr Platz beansprucht, erstellen Sie ihn als textGrob und verwenden Sie widths
, um seine Breite festzulegen. Hier arrangiert der innere arrangeGrob die vier Plots und den Haupttitel. Der äußere grid.arrange ordnet und zeichnet den globalen Y-Achsentitel, das arrangeGrob-Objekt und die Legende. Die Breite des Titels der globalen Y-Achse ist auf drei Zeilen festgelegt.
BEARBEITEN
Unter Verwendung Ihrer Daten und Ihres Codes für das Subsetting und die Umformung der Daten habe ich die ersten vier Diagramme gezeichnet, die Legende aus dem ersten Diagramm extrahiert und dann die Diagramme, die Legende und das Etikett angeordnet. Der Code lief ohne Probleme.
Es gab einige Probleme mit den Plots (und außerdem konnte Ihr Code die in Ihrem Beitrag gezeigten Plots nicht erstellt haben). Ich habe ein paar kleine Änderungen vorgenommen.
%Vor%