library(ggplot2)
df <- data.frame(x=1:10, y=rnorm(10))
p1 <- ggplot(df, aes(x,y)) + geom_point()
plist <- list(p1,p1,p1,p1,p1)
# In my real example,a plot function will fit a ggplot to a list of datasets
#and return a list of ggplots like the example above.
Ich möchte die Handlungen mit grid.arrange()
in arrangieren gridExtra
.
Wie würde ich das tun, wenn die Anzahl der Diagramme plist
variabel ist?
Das funktioniert:
grid.arrange(plist[[1]],plist[[2]],plist[[3]],plist[[4]],plist[[5]])
aber ich brauche eine allgemeinere Lösung. Gedanken?
grid.arrange(plist[[1:length(plist)]], ncol = nCol))
Ich erhalte die folgende Fehlermeldung:Error in hl.plots[[1:12]] : no such index at level 3
Danke!x <- list(1,2); x[[3:1]]
. Verwenden Sie im weiteren Sinneplist[...]
eher etwas alsplist[[...]]
Ihre Teilmenge. Und dann verwenden Siedo.call()
, was wir verwenden müssen, weilgrid.arrange()
es nicht so eingerichtet ist, dass eine Liste als erstes Argument verwendet wird. Prost und viel Glück!Sie können
grid.arrange()
undarrangeGrob()
mit Listen verwenden, solange Sie die Liste mit demgrobs =
Argument in jeder Funktion angeben . ZB in dem Beispiel, das Sie gegeben haben:quelle
Der Vollständigkeit halber (und da diese alte, bereits beantwortete Frage kürzlich wiederbelebt wurde ) möchte ich mithilfe des
cowplot
Pakets eine Lösung hinzufügen :quelle
Error in ggplot_to_gtable(x) : Argument needs to be of class "ggplot" or "gtable"
ggplot2
Paket oder die Basisgrafiken?ggplot2
.grid.arrange
Ich habe fast für mich gearbeitet - aber es stellt sich heraus, dass meine Liste der Grundstücke nicht gefüllt wird. Ich habe das Problem als Frage gestellt: stackoverflow.com/questions/43216262/… . Also frage ich mich, ob das auch das Problem für Cowplot gewesen sein könnteIch weiß, dass die Frage speziell die Verwendung des gridExtra- Pakets angibt , aber die
wrap_plots
Funktion aus dem Patchwork- Paket ist eine großartige Möglichkeit, Listen mit variabler Länge zu verarbeiten:Eine nützliche Sache dabei ist, dass Sie nicht angeben müssen, wie viele Spalten erforderlich sind, und dass die Anzahl der Spalten und Zeilen gleich bleiben soll. Beispielsweise:
quelle
devtools::install_github("thomasp85/patchwork")
auskommentierte Installationszeile auszuführen ?Um alle Diagramme auf einer Seite unterzubringen, können Sie die Anzahl der Spalten und Zeilen folgendermaßen berechnen:
Da die meisten Mehrfachplotfunktionen ncol und nrow als Argumente haben, können Sie diese einfach dort einfügen. Ich mag ggarrange von ggpubr.
Dies begünstigt mehr Zeilen als Spalten. Kehren Sie also um, wenn Sie das Gegenteil wünschen. Dh für 6 Diagramme gibt es 3 Zeilen und 2 Spalten, nicht umgekehrt.
quelle