Gem grafer på harddisken

Gem ggplot()-grafer

Med funktionen ggsave() gemmer du en graf fra R på din computers harddisk. Hvis du har gemt grafen i et objekt, kan du angive objektets navn med argumentet plot i ggsave(). Hvis du ikke angiver et objekt for plot, gemmer ggsave() den senest genererede graf. I så fald bør ggsave() placeres umiddelbart efter koden for den graf, der skal gemmes.

I eksemplerne nedenfor gemmer vi automatisk den seneste graf i forskellige filformater. Bemærk, at der ikke er et + mellem ggplot() og ggsave().

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

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

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

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

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

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

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

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

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

I det næste eksempel opretter vi et objekt (my_plot) ud fra ggplot(), og derefter angiver vi i ggsave(), at det netop er dette objekt, vi vil gemme.

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

Funktionen ggsave() har en række argumenter, som kan justeres efter behov:

Argument Funktion
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.

Argumenter i ggsave()

Bredde og højde

Når du gemmer grafer, hentes højden og bredden fra det aktuelle udseende i Rstudio. Derfor er det bedre at angive højde og bredde i ggsave(). Nedenfor gemmes en figur i png-format med en højde og bredde på 1000 pixels.

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

Hvis du bruger R Markdown til at generere rapporter, kan du angive figurens højde og bredde i indstillingerne for hver chunk. Af billedet nedenfor fremgår det, at vi angiver, at grafer skal have en bredde og højde på 1000 pixels.

R Markdown-chunk med indstillingerne fig.width=1000px og fig.height=1000px efterfulgt af ggplot- og ggsave-kode

Gem grafer lavet med base R

Det er sagtens muligt at lave grafer med base R. Det anbefales ikke, da ggplot2 er betydeligt bedre. Her følger et eksempel på en graf i base R:

plot(100, 200)
Simpel graf i base R med et enkelt punkt ved x 100 og y 200

For at gemme grafer lavet i base R skal følgende kode bruges:

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

I eksemplet ovenfor gemmer vi billedet i png-format. Før grafen tegnes, bruger vi funktionen png() til at angive filnavn, højde og bredde. Derefter tegnes grafen, og på sidste linje (dev.off()) fortæller vi, at billedet er færdigt, og at det kan gemmes.

For at gemme figuren i PDF-format bruges i stedet nedenstående kode. Bemærk, at både "png" i funktionen og filnavnet er skiftet ud med "pdf":

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