2016-09-19 12 views
0

Ich versuche, eine Liste von Plots für jeden kategorischen Wert in meinem Datenrahmen zu erstellen. Für jede Kategorie werden 2 nebeneinander liegende Plots auf einer Seite dargestellt und auf jeder Seite werden die Plots für jede Kategorie angezeigt.nebeneinander Plots auf mehreren Seiten

Jede der Aufgaben ist machbar, aber ich habe Probleme mit der Kombination von beiden.

1- Die Aufgabe der Parzellen nach Kategorien (eine auf jeder Seite der PDF) Erstellen leicht diesen dplyr Code getan werden kann, mit:

AllPlots <- dataf %>% 
    group_by(category) %>% 
    do(plots=ggplot(data=., aes(x = x, y = val)) + geom_bar(stat="identity")+ ggtitle(unique(.$category))) 

pdf("plots.pdf") 
invisible(lapply(AllPlots$plot, print)) 
dev.off() 

2- Die Aufgabe nebeneinander von der grafischen Darstellung ist auch einfach mit grid und gridExtra:

p1 = qplot(1:10, rnorm(10)) 
p2 = qplot(1:10, rnorm(10)) 
grid.arrange(p1, p2, ncol = 2, main = "Main title") 

man kann eine for-Schleife auf die Kategorie basiert machen und die Anordnung der Plots nebeneinander machen und kombinieren sie dann alle auf einer Seite. Aber ich denke, das ist langsam, da meine Datenfelder ziemlich groß sind.

Die Frage ist, wie man beides auf schnelle Weise gleichzeitig macht?

+0

Haben Sie 'facet_grid versucht (. ~ Kategorie)'? Bitte fügen Sie einige reproduzierbare Daten hinzu, z. 'dput()' für mehr Hilfe. – Jimbou

+0

'grid.arrange (grobs = AllPlots $ plot, ncol = 2)' oder '? MarrangeGrob' wenn Sie mehrere Seiten benötigen. Es wird nicht schnell gehen, aber der Engpass ist ggplot/grid, also kann man nicht viel dagegen tun. – baptiste

Antwort

0

Sorry, ich wollte nur kommentieren, aber weil ich neu bin, lässt mich die Seite noch nicht kommentieren.

Wenn Sie nach Kategorien zeichnen können, versuchen Sie diese verwenden, bevor

par(mfrow = c(1,2)) 

, die Ihre Umgebung Definitionen ändern, zu Plot- beginnen und wird 2 Grundstücke in jeder Seite eins neben dem anderen setzen.

mehr über Par (mfrow) zu finden, können Sie sich hier- http://www.statmethods.net/advgraphs/layout.html

Verwandte Themen