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.

Tabel 7.1: Een tabel met de eerste 10 rijen van de mtcars dataset.
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).

Figuur 7.1: Dynamische tabel. Deze wordt automatisch vervangen door een schermafdruk bij formaten die geen dynamische inhoud kunnen weergeven.

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.

Koolrabi, originele afmetingen

Figuur 7.2: Koolrabi, originele afmetingen

Koolrabi, verkleind

Figuur 7.3: Koolrabi, verkleind

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.

 

Creative Commons-Licentie Onkelinx, T. (2021). https://doi.org/10.5281/zenodo.842223