Lagre grafer til harddisken

Lagre ggplot()-grafer

Med funksjonen ggsave() lagrer du en graf fra R til datamaskinens harddisk. Hvis du har lagret grafen i et objekt, kan du angi objektets navn med argumentet plot i ggsave(). Hvis du ikke angir et objekt for plot, vil ggsave() lagre den sist genererte grafen. Da bør ggsave() plasseres rett etter koden for grafen som skal lagres.

I eksemplene nedenfor lagrer vi den siste grafen automatisk i ulike filformater. Merk at det ikke er noe + mellom ggplot() og ggsave().

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

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

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

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

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

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

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

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

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

I neste eksempel lager vi et objekt (my_plot) fra ggplot(), og deretter angir vi i ggsave() at vi vil lagre nettopp det objektet.

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

Funksjonen ggsave() har en rekke argumenter som kan justeres etter behov:

Argument Funksjon
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øyde

Når du lagrer grafer, hentes høyden og bredden fra det aktuelle utseendet i Rstudio. Derfor er det bedre å angi høyde og bredde i ggsave(). Nedenfor lagres en figur i png-format med 1000 piksler i høyde og bredde.

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

Hvis du bruker R Markdown til å generere rapporter, kan du angi figurens høyde og bredde i innstillingene for hver chunk. Bildet nedenfor viser at vi angir at grafer skal ha en bredde og høyde på 1000 piksler.

R Markdown-chunk med innstillingene fig.width=1000px og fig.height=1000px etterfulgt av ggplot- og ggsave-kode

Lagre grafer laget med base R

Det er fullt mulig å lage grafer med base R. Det anbefales ikke, ettersom ggplot2 er betydelig bedre. Et eksempel på en graf i base R følger:

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

For å lagre grafer laget i base R må følgende kode brukes:

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

I eksemplet ovenfor lagrer vi bildet i png-format. Før grafen tegnes, bruker vi funksjonen png() til å angi filnavnet, høyden og bredden. Deretter tegnes grafen, og på siste linje (dev.off()) forteller vi at bildet er ferdig og kan lagres.

For å lagre figuren i PDF-format brukes i stedet koden nedenfor. Merk at både "png" i funksjonen og filnavnet er byttet ut med "pdf":

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