Een eenvoudige grafiek om mee te beginnen We beginnen met een kleine dataset over de gemiddelde lengtegroei van Nederlandse jongens. In een korte R-sessie maken we eerst een lijst van de gemiddelde lengte (in centimeters) vanaf de leeftijd van 1 t/m 7 jaar. Vervolgens gebruiken we de functie plot() om een eenvoudige grafiek van deze tijdreeks te maken.
We krijgen de volgende grafiek te zien in een grafiekvenster.
Merk op dat R al veel standaardkeuzes heeft gemaakt om de bovenstaande grafiek te produceren:
er is een spreidingsdiagram gemaakt waarbij de lengtewaarden zijn uitgezet tegen hun index;
horizontale en verticale bereiken zijn geselecteerd om de datapunten zo goed mogelijk in beeld te brengen;
open cirkels werden gebruikt om datapunten voor te stellen;
er wordt gebruik gemaakt van een standaard grootte voor de afbeelding;
er is een standaardkleur voor de grafiek geselecteerd;
het gebruikte lettertype voor tekstweergave is standaard;
en nog veel meer standaardopties zijn toegepast.
Een grafiek aanpassen Kijkend naar de grafiek die is gemaakt in het eerste voorbeeld, wil je misschien meer geschikte aslabels specificeren, en een titel of een ondertitel toevoegen. De argumenten die u nodig heeft in de functie om dit te doen zijn::
main: de titel van het diagram
sub: de ondertitel van het diagram
xlab: het label langs de horizontale as
ylab: het label langs de verticale as
Alle bovengenoemde argumenten worden opgegeven als een woord (reeks van karakters). In ons voorbeeld zou je de volgende instructie kunnen geven om een aangepaste en hopelijk verbeterde grafiek te verkrijgen:
> plot(lengte, main="gemiddelde lengte van jongens vs leeftijd.",
+ xlab="leeftijd (jaar)", ylab="lengte (cm)")
We hadden ook een variabele "leeftijd" kunnen introduceren en het spreidingsdiagram van het dataframe 'lengte vs leeftijd' op de volgende manier kunnen tekenen:
Lettertype veranderen De argumenten main, sub, xlab, and ylab in de functie plot() zijn geen grafische parameters die voor alle soorten grafieken kunnen worden ingesteld; ze kunnen alleen worden gespecificeerd als argumenten binnen de grafische instructie. Er zijn echter wel een reeks grafische parameters die je kunt gebruiken om de grafieken aan te passen. Bijvoorbeeld, je bent mogelijk niet tevreden met het vette lettertype en de grootte van de titel omdat dit naar jouw mening te veel aandacht trekt, of je wilt verschillende kleuren gebruiken voor de titel en de aslabels. Om je een idee te geven van hoe je het eerder gemaakte diagram op deze manier kunt aanpassen, zou de volgende instructie kunnen helpen:
> plot(lengte, main="gemiddelde lengte van jongens vs leeftijd.",
+ xlab="leeftijd (jaar)", ylab="lengte (cm)",
+ col = "darkblue", # kleur van datapunten data: donkerblauw
+ col.main = "blue", # kleur van lettertype voor de titel: blauw
+ font.main = 1, # normale tekststijl voor de titel+ cex.main = 1, # normale lettergrootte voor de titel
+ col.lab = "darkblue" # kleur van datapunten data: donkerblauw + )
Deze instructie levert de volgende grafiek op:
Als je altijd de standaardgrootte voor de titel wilt gebruiken, kun je de volgende instructie eenmalig invoeren aan het begin van een R-sessie:
> par(cex.main = 1)
Het type van de grafiek veranderen Het argument type specificeert de visuele stijl van de plot. De meest gebruikte waarden voor dit argument zijn:
type = "p": Teken alleen de punten;
type = "l": Teken lijnstukken tussen punten;
type = "o": Teken lijnstukken over de punten heen;
type = "b": Teken beiden - punten en lijnstukken - maar niet over elkaar heen;
type = "h": Teken histogram-achtige verticale lijnstukken;
type = "s": Teken een trappenhuis, verticaal en horizontaal gaand.
De volgende instructies creëren één figuur waarin de verschillende diagramtypes zichtbaar worden gemaakt:
Andere kenmerken van een grafiek veranderen Je kunt kenmerken van een grafiek wijzigen, afgezien van de titel, aslabels of het type van het diagram.
Het symbool van een punt wijzigen:pch, De plot character parameter is een getal, meestal tussen 1 en 25. dat het grafische systeem informeert welk symbool moet worden gebruikt om de punten te tekenen ; zie onderstaande figuur.
De grootte van het symbool wijzigen: cex. Deze parameter beschrijft de character expansion factor (i.e., vergrotingsfactor) voor de getekende symbolen. Bij verstek cex=1, maar als je grotere symbolen in je grafiek wilt, moet je een grotere waarde specificeren, bijvoorbeeld 1.2, 1.5, 2 of enige andere waarden.
het type van lijnen in een grafiek wijzigen:lty. De line type parameter beschrijft - nomen est omen - het type van de lijnstukken die getekend worden. Het kan ofwel een getal zijn of een woord uit onderstaande lijst.
De lijndikte wijzigen:lwd. De line width parameter is gewoon een getal dat de breedte van de lijn aangeeft. De standaardwaarde is 1. Het is niet verrassend dat grotere waarden dikkere lijnen produceren en kleinere waarden dunnere lijnen. Probeer te experimenteren met verschillende waarden van lwd en zie wat gebeurt.
De kleur van punten en lijnen wijzigen:col. R heeft 657 ingebouwde kleuren. Je kunt alle kleurnamen zien door de instructie colors() in de console in te voeren.
Namen van kleuren Hieronder staat de volledige tabel met namen van beschikbare kleuren.
white
aliceblue
antiquewhite
antiquewhite1
antiquewhite2
antiquewhite3
antiquewhite4
aquamarine
aquamarine1
aquamarine2
aquamarine3
aquamarine4
azure
azure1
azure2
azure3
azure4
beige
bisque
bisque1
bisque2
bisque3
bisque4
black
blanchedalmond
blue
blue1
blue2
blue3
blue4
blueviolet
brown
brown1
brown2
brown3
brown4
burlywood
burlywood1
burlywood2
burlywood3
burlywood4
cadetblue
cadetblue1
cadetblue2
cadetblue3
cadetblue4
chartreuse
chartreuse1
chartreuse2
chartreuse3
chartreuse4
chocolate
chocolate1
chocolate2
chocolate3
chocolate4
coral
coral1
coral2
coral3
coral4
cornflowerblue
cornsilk
cornsilk1
cornsilk2
cornsilk3
cornsilk4
cyan
cyan1
cyan2
cyan3
cyan4
darkblue
darkcyan
darkgoldenrod
darkgoldenrod1
darkgoldenrod2
darkgoldenrod3
darkgoldenrod4
darkgray
darkgreen
darkgrey
darkkhaki
darkmagenta
darkolivegreen
darkolivegreen1
darkolivegreen2
darkolivegreen3
darkolivegreen4
darkorange
darkorange1
darkorange2
darkorange3
darkorange4
darkorchid
darkorchid1
darkorchid2
darkorchid3
darkorchid4
darkred
darksalmon
darkseagreen
darkseagreen1
darkseagreen2
darkseagreen3
darkseagreen4
darkslateblue
darkslategray
darkslategray1
darkslategray2
darkslategray3
darkslategray4
darkslategrey
darkturquoise
darkviolet
deeppink
deeppink1
deeppink2
deeppink3
deeppink4
deepskyblue
deepskyblue1
deepskyblue2
deepskyblue3
deepskyblue4
dimgray
dimgrey
dodgerblue
dodgerblue1
dodgerblue2
dodgerblue3
dodgerblue4
firebrick
firebrick1
firebrick2
firebrick3
firebrick4
floralwhite
forestgreen
gainsboro
ghostwhite
gold
gold1
gold2
gold3
gold4
goldenrod
goldenrod1
goldenrod2
goldenrod3
goldenrod4
gray
gray0
gray1
gray2
gray3
gray4
gray5
gray6
gray7
gray8
gray9
gray10
gray11
gray12
gray13
gray14
gray15
gray16
gray17
gray18
gray19
gray20
gray21
gray22
gray23
gray24
gray25
gray26
gray27
gray28
gray29
gray30
gray31
gray32
gray33
gray34
gray35
gray36
gray37
gray38
gray39
gray40
gray41
gray42
gray43
gray44
gray45
gray46
gray47
gray48
gray49
gray50
gray51
gray52
gray53
gray54
gray55
gray56
gray57
gray58
gray59
gray60
gray61
gray62
gray63
gray64
gray65
gray66
gray67
gray68
gray69
gray70
gray71
gray72
gray73
gray74
gray75
gray76
gray77
gray78
gray79
gray80
gray81
gray82
gray83
gray84
gray85
gray86
gray87
gray88
gray89
gray90
gray91
gray92
gray93
gray94
gray95
gray96
gray97
gray98
gray99
gray100
green
green1
green2
green3
green4
greenyellow
grey
grey0
grey1
grey2
grey3
grey4
grey5
grey6
grey7
grey8
grey9
grey10
grey11
grey12
grey13
grey14
grey15
grey16
grey17
grey18
grey19
grey20
grey21
grey22
grey23
grey24
grey25
grey26
grey27
grey28
grey29
grey30
grey31
grey32
grey33
grey34
grey35
grey36
grey37
grey38
grey39
grey40
grey41
grey42
grey43
grey44
grey45
grey46
grey47
grey48
grey49
grey50
grey51
grey52
grey53
grey54
grey55
grey56
grey57
grey58
grey59
grey60
grey61
grey62
grey63
grey64
grey65
grey66
grey67
grey68
grey69
grey70
grey71
grey72
grey73
grey74
grey75
grey76
grey77
grey78
grey79
grey80
grey81
grey82
grey83
grey84
grey85
grey86
grey87
grey88
grey89
grey90
grey91
grey92
grey93
grey94
grey95
grey96
grey97
grey98
grey99
grey100
honeydew
honeydew1
honeydew2
honeydew3
honeydew4
hotpink
hotpink1
hotpink2
hotpink3
hotpink4
indianred
indianred1
indianred2
indianred3
indianred4
ivory
ivory1
ivory2
ivory3
ivory4
khaki
khaki1
khaki2
khaki3
khaki4
lavender
lavenderblush
lavenderblush1
lavenderblush2
lavenderblush3
lavenderblush4
lawngreen
lemonchiffon
lemonchiffon1
lemonchiffon2
lemonchiffon3
lemonchiffon4
lightblue
lightblue1
lightblue2
lightblue3
lightblue4
lightcoral
lightcyan
lightcyan1
lightcyan2
lightcyan3
lightcyan4
lightgoldenrod
lightgoldenrod1
lightgoldenrod2
lightgoldenrod3
lightgoldenrod4
lightgoldenrodyellow
lightgray
lightgreen
lightgrey
lightpink
lightpink1
lightpink2
lightpink3
lightpink4
lightsalmon
lightsalmon1
lightsalmon2
lightsalmon3
lightsalmon4
lightseagreen
lightskyblue
lightskyblue1
lightskyblue2
lightskyblue3
lightskyblue4
lightslateblue
lightslategray
lightslategrey
lightsteelblue
lightsteelblue1
lightsteelblue2
lightsteelblue3
lightsteelblue4
lightyellow
lightyellow1
lightyellow2
lightyellow3
lightyellow4
limegreen
linen
magenta
magenta1
magenta2
magenta3
magenta4
maroon
maroon1
maroon2
maroon3
maroon4
mediumaquamarine
mediumblue
mediumorchid
mediumorchid1
mediumorchid2
mediumorchid3
mediumorchid4
mediumpurple
mediumpurple1
mediumpurple2
mediumpurple3
mediumpurple4
mediumseagreen
mediumslateblue
mediumspringgreen
mediumturquoise
mediumvioletred
midnightblue
mintcream
mistyrose
mistyrose1
mistyrose2
mistyrose3
mistyrose4
moccasin
navajowhite
navajowhite1
navajowhite2
navajowhite3
navajowhite4
navy
navyblue
oldlace
olivedrab
olivedrab1
olivedrab2
olivedrab3
olivedrab4
orange
orange1
orange2
orange3
orange4
orangered
orangered1
orangered2
orangered3
orangered4
orchid
orchid1
orchid2
orchid3
orchid4
palegoldenrod
palegreen
palegreen1
palegreen2
palegreen3
palegreen4
paleturquoise
paleturquoise1
paleturquoise2
paleturquoise3
paleturquoise4
palevioletred
palevioletred1
palevioletred2
palevioletred3
palevioletred4
papayawhip
peachpuff
peachpuff1
peachpuff2
peachpuff3
peachpuff4
peru
pink
pink1
pink2
pink3
pink4
plum
plum1
plum2
plum3
plum4
powderblue
purple
purple1
purple2
purple3
purple4
red
red1
red2
red3
red4
rosybrown
rosybrown1
rosybrown2
rosybrown3
rosybrown4
royalblue
royalblue1
royalblue2
royalblue3
royalblue4
saddlebrown
salmon
salmon1
salmon2
salmon3
salmon4
sandybrown
seagreen
seagreen1
seagreen2
seagreen3
seagreen4
seashell
seashell1
seashell2
seashell3
seashell4
sienna
sienna1
sienna2
sienna3
sienna4
skyblue
skyblue1
skyblue2
skyblue3
skyblue4
slateblue
slateblue1
slateblue2
slateblue3
slateblue4
slategray
slategray1
slategray2
slategray3
slategray4
slategrey
snow
snow1
snow2
snow3
snow4
springgreen
springgreen1
springgreen2
springgreen3
springgreen4
steelblue
steelblue1
steelblue2
steelblue3
steelblue4
tan
tan1
tan2
tan3
tan4
thistle
thistle1
thistle2
thistle3
thistle4
tomato
tomato1
tomato2
tomato3
tomato4
turquoise
turquoise1
turquoise2
turquoise3
turquoise4
violet
violetred
violetred1
violetred2
violetred3
violetred4
wheat
wheat1
wheat2
wheat3
wheat4
whitesmoke
yellow
yellow1
yellow2
yellow3
yellow4
yellowgreen
Voorbeeld
> plot(lengte, main="gemiddelde lengte van jongens vs leeftijd.",
+ xlab="leeftijd (jaar)", ylab="lengte (cm)",
+ type = "o", # lijnstukken over punten heen
+ lty = "dotted", # gestippelde lijnstukken
+ pch = 16, # gesloten cirkel voor een datapunt
+ cex = 2, # dubbele grootte
+ col = "darkblue", # kleur van punten en lijnen: donkerblauw
+ cex.axis = 0.8, # kleiner lettertype voor aslabels
+ col.lab = "darkblue", # donkerblauwe kleur voor aslabels
+ col.main = "blue") # blauwe kleur voor titel
De assen van een grafiek aanpassen R biedt mogelijkheden om de assen aan te passen
Wijziging van de bereiken van de assen:xlim, ylim. Over het algemeen doet R een behoorlijk goede poging om geschikte horizontale en verticale bereiken te raden. Je kunt echter keuzes overschrijven door de argumenten xlim en ylim aan te passen Bijvoorbeeld, de volgende code produceert een redelijke grafiek van de tangensfunctie:
> x_waarden <- seq(from = 0, to = 10, by = 0.001)
> y_waarden <- tan(x_waarden)
> plot(x = x_waarden, y = y_waarden, pch = 20, cex = 0.8, col = "blue", ylim = c(-10,10))
Zonder specificatie van het grafiekbereik zou je een weinig informatieve grafiek krijgen, gedomineerd door extreme waarden.
Onderdrukking van labels:ann. Stel ann = FALSE als je niet wilt dat R een tekst voor een titel, ondertitel of labels bij de assen opstelt.
Onderdrukking van het tekenen van assen. Stel axes = FALSE als je niet wilt dat R assen met streepjes en getallen tekent. In dit geval kun je nog steeds een kleine rand om de grafiek laten tekenen door frame.plot = TRUE in te stellen.
Logaritmische schaling van assen:log="x", log="y", en log="xy" zorgen ervoor dat de x, y of eide assen logaritmische schaling gebruiken. Dit werkt voor veel, maar niet alle types van grafieken.
Specifieke assen weglaten Als je de verticale as wilt weglaten, maar de horizontale as wilt behouden, stel dan yaxt = "none" (of "n" als afkorting van "none") in. Gebruik xaxt als optie voor het weglaten van een horizontale as.