Ich versuche, die R-Markdown-Funktion in R Studio zu verwenden, wo ich Plots drucken wollte, die in einer Funktion generiert wurden. Dies ist ein grundlegendes heruntergekommenes Beispiel dessen, was ich versuche zu tun.Drucken von Plots, die in einer Funktion mit R Markdown in RStudio erstellt wurden
**Test printing plots generated in a function**
================================================
``` {r fig.width=8, fig.height=4, warning=FALSE, eval=TRUE, message=FALSE, tidy=TRUE, dev='png', echo=FALSE, fig.show='hold', fig.align='center'}
dat <- data.frame(x=c(1:10),y=c(11:20),z=c(21:30),name=rep(c("a","b"),each=5))
library(ggplot2)
ex <- function(data){
plot(data[,1],data[,2])
plot(data[,1],data[,3])
}
for (i in 1:10){
t1 <- rbind(i,ex(dat))
}
t1
```
Diejenigen, diesen Code zu testen, stellen Sie sicher, dass es als ".Rmd" Datei speichern und dann die knithtml() in RStudio Symbolleiste ausführen. Dieser Code oben funktioniert absolut gut mit der Art von HTML-Ausgabe, die ich wünsche. Wenn ich jedoch die Basis-Plotfunktion durch ggplot-basierten Code ersetze, kann ich die knithtml() nicht erhalten, um die ggplot-Ausgabe der 10 Plots zu erzeugen, die ich vorher erhalten habe. Der obige Grundplot-Code wird nun durch folgenden Code ersetzt:
p1 <- ggplot(data=data, aes(x=data[,1],y=data[,2]))
p1 <- p1+geom_point()
p1
Fehle ich hier etwas sehr Einfaches.
VJ
Was passiert, wenn Sie eine facettierte Handlung und stricken das machte? –
Nein! Solange es sich in der Funktion befindet, wird es nicht gedruckt. Außerdem habe ich gerade getestet, dass qplot() die gewünschte Ausgabe erzeugt, während ggplot dies nicht tut. Kann ich ein in einer Funktion generiertes ggplot-Objekt nicht außerhalb von ggSave() ausgeben, um es als PDF zu speichern, z. –
Innerhalb 'for' Anweisung oder in einer Funktion, müssen Sie' print' ggplot2 Objekt explizit, also versuchen Sie 'print (p1)'. – kohske