Ausgabe von gridExtra :: grid.arrange in ein Objekt speichern
Ich platziere mehrere Diagramme mit @ in einem BilgridExtra::grid.arrange
und möchten die Option haben, das kombinierte Diagramm als Objekt zu speichern, das innerhalb einer Funktion als Teil einer Liste zurückgegebener Objekte zurückgegeben werden kann. Im Idealfall möchte ich dies tun, ohne das Plotobjekt zu drucken.
Der folgende Code erstellt zwei Diagramme und kombiniert sie mitgrid.arrange
und versucht, das Ergebnis in @ zu speichex
. Jedoch,x
ergibtNULL
und der Plot wird gedruckt. Die Dokumentation fürgrid.arrange
zeigt mich aufarrangeGrob
und schlägt vor, dass das Plotten mit @ deaktiviert werden kaplot=FALSE
, aber ich erhalte eine Fehlermeldung, wenn ich das versuche, weilFALSE
ist kein Grob-Objekt.
Irgendwelche Vorschläge für was ich nicht verstehe?
# R under development
# Windows 7 (32 bit)
# ggplot2 1.0.0
# gridExtra 0.9.1
p1 <- ggplot(mtcars, aes(x=factor(cyl), y=mpg)) + geom_boxplot()
p2 <- ggplot(mtcars, aes(x=factor(cyl), y=wt)) + geom_boxplot()
x <- gridExtra::grid.arrange(p1, p2)
x
Per die Kommentare, ich füge diese Änderung hinzu. Wenn ich es mit @ probiearrangeGrob
, Ich bekomme überhaupt keine Ausgabe.
> gridExtra::arrangeGrob(p1, p2)
> print(gridExtra::arrangeGrob(p1, p2))
Error: No layers in plot
> x <- gridExtra::arrangeGrob(p1, p2)
> x
Error: No layers in plot