Inleiding Programmeren + R

Plot saven

» Start

Grafieken wegschrijven in een file

    

Zoals we hebben gezien sturen grafische functies, zoals plot, barplot, bosplot, etc..., hun resultaten bij verstek naar een grafisch window. Het is ook mogelijk om de plaatjes naar een file te sturen. Er is een makkelijke manier om dat vanaf de commandoregel in R te doen. 

Je opent het toepasselijke graphics device, in dit geval dus een file, geeft de nodige commando's om de gewenste plaatjes te maken, en aan het eind sluit je het device, dwz de file, weer. Als je bijvoorbeeld een plaatje naar een JPEG file wil sturen dan geeft je de volgende commando's:

    

    dataset <- read.table("data.txt", header=T) # read data from working directory

    attach(dataset) # attach the names in first row as variable names

    jpeg(filename="barpl.jpg") # write results of next graphic command to a jpg file

    barplot(table(dataset[,2])) # make a barplot from tabulated second variable

    dev.off() # close the graphics device

    

Je kunt de png functie (ipv jpeg) gebruiken als je een plaatje in .png format op wil slaan, of de postscript functie voor een plaatje in .eps format [zie: help(postscript)]

Het algemene schema om een plaatje als postscript-file op te slaan is 

    

    > postscript("filenaam.ps") 

    > plotopdrachten 

    > dev.off() 


Je kunt ook via het menu in R je plaatjes opslaan in een file. Als je op een Mac werkt gebruik je daarvoor het Save as... commando uit het File menu in de menu-balk, en bewaar je het plaatje in .pdf format. Als je op een PC met Windows werkt gebruik je ook het Save as... commando uit het File menu in de menu-balk. Je kunt uit diverse formats kiezen: 


        save-boxplot.jpg


Tot slot een voorbeeld waarbij het plaatje wordt bewaard als een pdf file. We maken daarbij gebruik van de mogelijkheid om transparantie in het plaatje aan te brengen. Daardoor is het mogelijk om in een plot met heel veel punten de indruk van gelaagdheid geven. Op plaatsen waar heel veel punten dicht bij elkaar of zelfs op elkaar liggen worden ze vanzelf donkerder afgebeeld.


> x <- rnorm(2000) # 2000 random standaard normaal verdeelde getallen

> y <- rnorm(2000) # idem

> pdf("transparant.pdf", version="1.4")

> plot(x,y,col=rgb(0,0,0,alpha=0.2),pch=16)

> dev.off()

transparant.pdf