Fonction pour enregistrer ggplot
Je voudrais créer une fonction pour enregistrer des parcelles (à partir de ggplot
).
J'ai beaucoup de ces parcelles, donc cela m'aidera à travailler plus efficacement.
Voici une trame de données:
### creating data frame
music <- c("Blues", "Hip-hop", "Jazz", "Metal", "Rock")
number <- c(8, 7, 4, 6, 11)
df.music <- data.frame(music, number)
colnames(df.music) <- c("Music", "Amount")
Ensuite, je crée un tracé:
### creating bar graph (this part is OK)
myplot <- ggplot(data=df.music, aes(x=music, y=number)) +
geom_bar(stat="identity") +
xlab(colnames(df.music)[1]) +
ylab(colnames(df.music)[2]) +
ylim(c(0,11)) +
ggtitle("Ulubiony typ muzyki wśród studentów")
Maintenant, je veux enregistrer cette parcelle à .pdf
.
Cela fonctionne:
pdf("Myplot.pdf", width=5, height=5)
plot.music.bad
dev.off()
Cependant, je voudrais automatiser cela avec une fonction qui prend comme argument l'intrigue, je veux le sauver. Je ne sais pas exactement comment le faire; voici ce que j'ai essayé:
save <- function(myplot){
plot<- myplot
pdf("lol.pdf", width=5, height=5)
plot
dev.off()
}
### .pdf file is created but doesn't work
save(myplot)
Alors, comment puis-je le faire?
3 réponses
Vous pouvez utiliser print()
pour enregistrer les tracés produits à partir de ggplot2
dans un fichier.
Tout d'abord, définissez votre fonction pour enregistrer les tracés:
savePlot <- function(myPlot) {
pdf("myPlot.pdf")
print(myPlot)
dev.off()
}
Créez votre intrigue:
myPlot <- ggplot(ggplot(data=df.music, aes(x=music, y=number)) +
geom_bar(stat="identity") +
xlab(colnames(df.music)[1]) +
ylab(colnames(df.music)[2]) +
ylim(c(0,11)) +
ggtitle("Ulubiony typ muzyki wśród studentów")
Et enfin appeler la fonction:
savePlot(myPlot)
Alternativement, vous pouvez simplement utiliser ggsave()
après avoir créé votre tracé:
ggsave(filename="myPlot.pdf", plot=myPlot)
Suivant a été utile pour moi, peut-être pour quelqu'un d'autre aussi. On peut enregistrer le dernier tracé sans le référencer explicitement.
ggsave("filename.pdf",
plot = last_plot(), # or give ggplot object name as in myPlot,
width = 5, height = 5,
units = "in", # other options c("in", "cm", "mm"),
dpi = 300)
Si vous souhaitez un fichier image au lieu d'un pdf, les travaux suivants
ggsave(filename="myPlot.jpg", plot=last_plot())
Ou avec des paramètres supplémentaires, comme suit.
ggsave(filename="myPlot.jpg", plot=lastplot(),
width = 10, height = 5,
units = "cm", # other options are "in", "cm", "mm"
dpi = 200
)
Les types de fichiers suivants sont également pris en charge "eps", "ps", "Tex" (pictex), "pdf", "jpeg", "tiff", "png", "bmp", "svg" ou "wmf".