Je veux enregistrer un tracé de zone empilée (un exemple de tracé avec code peut être trouvé ici ) fait avec ggplot2 sous [~ # ~] svg [~ # ~] . Je l'ai essayé avec le package Cairo mais le résultat est mauvais.
library(ggplot2)
library(grid)
library(Cairo)
...
#png(output_file, width=800, height=400)
Cairo(800,400,file=paste(output_file, ".svg", sep=""),type="svg",bg="transparent",pointsize=8, units="px",dpi=400)
gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid.draw(gt)
dev.off()
L'enregistrement d'un tracé créé avec ggplot2 en tant que SVG est simple en utilisant la fonction ggsave.
Cependant, des packages supplémentaires au-delà de ggplot2 peuvent être nécessaires, tels que svglite.
Quelques exemples de code:
require("ggplot2")
#some sample data
head(diamonds)
#to see actually what will be plotted and compare
qplot(clarity, data=diamonds, fill=cut, geom="bar")
#save the plot in a variable image to be able to export to svg
image=qplot(clarity, data=diamonds, fill=cut, geom="bar")
#This actually save the plot in a image
ggsave(file="test.svg", plot=image, width=10, height=8)
J'espère que ça marche pour toi.