7 Figuren en tabellen
7.1 Tabellen
Tabellen zijn het eenvoudigst te genereren vanuit een R data.frame
met de functie kable()
. De naam van de chunk met prefix tab:
kan je vervolgens gebruiken als label om naar de figuur te verwijzen. Bijschriften plaats je in caption
.
mpg | cyl | disp | hp | drat | |
---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160.0 | 110 | 3.90 |
Mazda RX4 Wag | 21.0 | 6 | 160.0 | 110 | 3.90 |
Datsun 710 | 22.8 | 4 | 108.0 | 93 | 3.85 |
Hornet 4 Drive | 21.4 | 6 | 258.0 | 110 | 3.08 |
Hornet Sportabout | 18.7 | 8 | 360.0 | 175 | 3.15 |
Valiant | 18.1 | 6 | 225.0 | 105 | 2.76 |
Duster 360 | 14.3 | 8 | 360.0 | 245 | 3.21 |
Merc 240D | 24.4 | 4 | 146.7 | 62 | 3.69 |
Merc 230 | 22.8 | 4 | 140.8 | 95 | 3.92 |
Merc 280 | 19.2 | 6 | 167.6 | 123 | 3.92 |
Je kan de tabellen eveneens dynamisch weergeven met behulp van de datatable()
functie uit het DT
package. De HTML versie van het rapport zal dan een interactieve versie van de tabel bevatten. Hier kan de gebruiker eenvoudig zoeken, sorteren, …. Die functionaliteit is uiteraard niet beschikbaar in pdf formaat. Daarom wordt in de pdf automatisch een schermafdruk gemaakt (figuur 7.1).
7.2 Figuren
Figuren zijn het eenvoudigst toe te voegen als een R chunk. De naam van de chunk met prefix fig:
kan je vervolgens gebruiken als label om naar de figuur te verwijzen. Bijschriften plaats je in fig.cap
.
De afmetingen in een figuur zijn in principe gebaseerd op de afmetingen zoals gedefineerd in het bestand: het aantal pixels gedeeld door de resolutie.
- 600 pixels breed / 600 dpi = 1 inch (25,4 mm)
- 600 pixels breed / 300 dpi = 2 inch (50,8 mm)
- 600 pixels breed / 72 dpi = 8.33 inch (211.7 mm)
Figuur 7.2 is 4896 pixels breed en 3264 pixels hoog. Standaard gebruikt de huisstijl een resolutie van 300 dpi. De figuur in de pdf wordt dan 41.5 cm breed en 27.6 cm hoog, hetgeen uiteraard niet op A4 past. In de HTML versie wordt een te grootte figuur automatisch verkleint tot de breedte van de tekst. Er zijn trukjes om de figuur in pdf automatisch te verkleinen, doch dan werkt de HTML output niet meer zo goed. De beste manier is de figuur zelf te verkleinen tot het gewenste formaat. Een bijkomend voordeel is dat de bestandsgrootte enorm verkleind. Figuur 7.3 geeft dezelfde foto die vooraf met externe software geschaald werd naar 1181 x 787 pixels. Dat komt overeen met 10 cm breed bij een resolutie van 300 dpi. De bestandsgrootte daalde met een factor van 2.9 MB naar 295 kB. Hierdoor wordt het finale rapport veel compacter, zowel in pdf als HTML formaat.
7.3 Plaatsing van tabellen en figuren
Belangrijk om weten is dat, in het geval van het pdf formaat, de software zelf een zo goed mogelijke plaats zoekt voor de zogenaamde floats (tabellen en figuren). Dat kan uiteraard soms de mist in gaan. Vooral wanneer er weinig tekst is in verhouding tot de figuren. In die gevallen kan het zijn dat de figuren pas in een volgende subsubsection (kop 4), subsection (kop 3) of zelfs section (kop 2) getoond worden. De figuren en tabellen zullen nooit in een volgend hoofdstuk terecht komen. Wanneer je eerst een floating tabel invoegt (bijv. table 12.1) en iets later een lokale tabel (bijv. tabel 12.4), dan kan het gebeuren dat de floating tabel pas na de lokale tabel getoond wordt. Het volgnummer hangt echter af van de plaatsing in de code, niet de finale plaats in het document.
De beste optie om hier iets aan te doen, is te zorgen voor voldoende tekst ;-). Als het probleem zich enkel lokaal voordoet kan je op die plaats volgende code opnemen.
\FloatBarrier
Op dat moment worden eerst alle hangende figuren en tabellen geplaatst vooraleer verder te gaan met de tekst. Door in de YAML: floatbarrier: section
op te nemen wordt automatisch een \FloatBarrier
geplaatst voor elke section (kop 2). Je kan dit ook doen met subsection (kop 3) en subsubsection (kop 4). Daarnaast kan je nog steeds ad hoc \FloatBarrier
toevoegen. \FloatBarrier
heeft enkel invloed op de pdf versie van het rapport.
Onkelinx, T. (2021). https://doi.org/10.5281/zenodo.842223