Ich versuche, eine Funktion zu schreiben, die einen ggplot facet_wrap
Plot über mehrere Seiten plottet. Es ist nur ein Hack, da diese Funktion auf der Aufgabenliste von ggplot2 zu finden ist. Ich mache ein paar kleine Berechnungen, um die Anzahl der Seiten zu finden, die ich brauche, die Anzahl der Zeilen meiner data.frame
, die ich pro Seite brauche usw. Ich bin ziemlich zuversichtlich, dass das alles funktioniert.R + ggplot: Plotten über mehrere Seiten
pdf(filename)
for (i in seq(num_pages)){
slice = seq(((i-1)*num_rows)+1,(i*num_rows))
slice = slice[!(slice > nrow(df.merged))]
df.segment=df.merged[slice,]
p <- ggplot(df.segment, aes(y=mean,x=phenotype))
p <- p + geom_bar(stat="identity",fill="white",colour="black")
p + facet_wrap("ID",scales="free_y",ncol=n_facets,nrow=n_facets)
}
dev.off()
Mein Problem ist, dass durch sie alle auf in einem for-Schleife wie diese, in zwischen den pdf()
und dev.off()
Funktionen Verpackung, ist, dass die for-Schleife für ggplot zu warten scheint nicht seine Sache zu tun, und durchbricht seine Schleife sehr schnell und gibt eine ungültige PDF aus.
Wenn ich i = 1
gesetzt, starten Sie den pdf()
, den obigen Code innerhalb der for-Schleife laufen, dann setzen i=2
, führen Sie den Code, und so weiter, bis ich langweilig (i=3
) dann das Gerät die resultierende PDF auszuschalten ist brillant.
Gibt es eine Möglichkeit, die for-Schleife warten zu können, bis die letzte Zeile das Plotten beendet hat, bevor ich zur nächsten Iteration übergehe?
wow, das funktioniert völlig. Ich hatte keine Ahnung, dass der Druck so verwendet werden könnte. –
Es ist weil 'p' ein Objekt ist. Die letzte Zeile Ihres Codes ändert das 'p'-Objekt, aber dann möchten Sie es auf dem Gerät' drucken'. – JoFrhwld
Yup, es ist ein häufiges Hindernis. Manchmal schreibe ich eine Funktion in ggplot2 und lasse 'print()' um den letzten Teil herum, daher bekomme ich keine Ausgabe ... – aL3xa