2016-07-10 17 views
-2

Wie erstellt man ein ggplot Objekt aus einem funktionsgenerierten Plot. Ich verwende eine Funktion zum Erstellen von zwei Y-Achsen-Plot in ggplot und es funktioniert, aber ich kann es nicht in ein ggplot Objekt mit Klasse gg und ggplot wie andere ggplot Objekte konvertieren.Funtion erstellt ggplot zu ggplot object

Wie, wenn wir zwei Plots wie diese:

p1 <- qplot(wt, mpg, data=mtcars) 
p2 <- ggplot(diamonds, aes(price, colour = cut)) + geom_density() 

Jetzt kombiniert ich diese beiden diese Codes und erzeugt das dritte Grundstück:

p3 <- grid.arrange(p1,p2,ncol=2) 

Es die Handlung erzeugt, aber ich kann mich nicht erinnern Die p3 Handlung später, bedeutet, dass es nicht als ggplot, wie es für p1 oder p2 tat.

Ich möchte jetzt nicht als PDF oder Bilddatei exportieren. Meine Idee ist, die p3 Handlung später zu verwenden und mit anderen ggplots zu kombinieren.

+0

bitte einige Codes teilen, wie Ihr bisher versucht. –

Antwort

2

Verwenden Sie grid::grid.draw, um die gtable Objekte zu drucken, die von grid.arrange erstellt wurden. Wenn Sie möchten, um die Ausgabe zu unterdrücken, wenn p1 und p2 Kombination verwenden arrangeGrob statt grid.arrange

library(ggplot2) 
library(gridExtra) 
library(grid) 

p1 <- qplot(wt, mpg, data=mtcars) 
p2 <- ggplot(diamonds, aes(price, colour = cut)) + geom_density() 

p3 <- arrangeGrob(p1,p2,ncol=2) 
grid.draw(p3) 

enter image description here

p4 <- arrangeGrob(p3, p1, nrow=2) 
grid.draw(p4) 

enter image description here

+0

Danke Sumedh. Es war sehr hilfreich. –