Enregistrer des graphiques sur le disque dur

Enregistrer des graphiques ggplot()

La fonction ggsave() permet d'enregistrer un graphique de R sur le disque dur de votre ordinateur. Si vous avez stocké le graphique dans un objet, vous pouvez indiquer le nom de cet objet avec l'argument plot de ggsave(). Si vous n'indiquez aucun objet pour plot, ggsave() enregistrera le dernier graphique généré. Dans ce cas, ggsave() doit être placé immédiatement après le code du graphique à enregistrer.

Dans les exemples ci-dessous, nous enregistrons automatiquement le dernier graphique dans différents formats de fichier. Notez qu'il n'y a pas de + entre ggplot() et ggsave().

## Enregistre au format PNG
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.png')

## Enregistre au format PDF
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.pdf')

## Enregistre au format JPEF
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.jpeg')

## Enregistre au format SVG
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.svg')

## Enregistre au format EPS
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.eps')

## Enregistre au format BMP
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.bmp')

## Enregistre au format TIFF
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.tiff')

## Enregistre au format PS
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.ps')

## Enregistre au format PDF (Windows uniquement)
ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.wmf')

Dans l'exemple suivant, nous créons un objet (my_plot) à partir de ggplot(), puis nous précisons dans ggsave() que nous voulons enregistrer précisément cet objet.

my_plot <- ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave(plot="my_plot", filename="my_plot.png")

La fonction ggsave() possède plusieurs arguments que l'on peut ajuster selon les besoins :

Argument Fonction
filename File name to create on disk.
plot Plot to save, defaults to last plot displayed.
device Device to use. Can either be a device function, or one of "eps", "ps", "tex" (pictex), "pdf", "jpeg", "tiff", "png", "bmp", "svg" or "wmf" (windows only).
path Path of the directory to save plot to: path and filenameare combined to create the fully qualified file name. Defaults to the working directory.
scale Multiplicative scaling factor.
width, height, units Plot size in units ("in", "cm", "mm", or "px"). If not supplied, uses the size of current graphics device.
dpi Plot resolution. Also accepts a string input: "retina" (320), "print" (300), or "screen" (72). Applies only to raster output types.
limitsize When TRUE (the default), ggsave() will not save images larger than 50x50 inches, to prevent the common error of specifying dimensions in pixels.
bg Background colour. If NULL, uses the plot.background fill value from the plot theme.

Arguments de ggsave()

Largeur et hauteur

Lorsque vous enregistrez des graphiques, la hauteur et la largeur sont reprises de l'affichage actuel dans RStudio. Il est donc préférable de spécifier la hauteur et la largeur dans ggsave(). Ci-dessous, une figure est enregistrée au format png avec une hauteur et une largeur de 1000 pixels.

ggplot(gapminder, aes(x=pop, y=lifeExp)) + geom_point()
ggsave('Min-figur.png', height=1000, width=1000, units = "px")

Si vous utilisez R Markdown pour générer des rapports, vous pouvez spécifier la hauteur et la largeur de la figure dans les options de chaque chunk. L'image ci-dessous montre que nous indiquons que les graphiques doivent avoir une largeur et une hauteur de 1000 pixels.

Chunk R Markdown avec les options fig.width=1000px et fig.height=1000px, suivi du code ggplot et ggsave

Enregistrer des graphiques créés en base R

Il est tout à fait possible de créer des graphiques en base R. Ce n'est toutefois pas recommandé, car ggplot2 est nettement supérieur. Voici un exemple de graphique en base R :

plot(100, 200)
Graphique simple en base R avec un seul point en x 100 et y 200

Pour enregistrer des graphiques créés en base R, il faut utiliser le code suivant :

png('base-R-graf.png', height=500, width=500)
plot(100, 200)
dev.off()

Dans l'exemple ci-dessus, nous enregistrons l'image au format png. Avant de tracer le graphique, nous utilisons la fonction png() pour spécifier le nom du fichier, la hauteur et la largeur. Le graphique est ensuite tracé et, à la dernière ligne (dev.off()), nous indiquons que l'image est terminée et qu'elle peut être enregistrée.

Pour enregistrer la figure au format PDF, on utilise plutôt le code ci-dessous. Notez que « png » dans la fonction et dans le nom du fichier a été remplacé par « pdf » :

pdf('base-R-graf.pdf', height=500, width=500)
plot(100, 200)
dev.off()