Staafdiagrammen met legenda

Dit artikel beschrijft hoe je een kaart kunt maken met staafdiagrammen en een legenda.

Benodigde software
Quantum GIS (qgis.org)
LegendSVG (qgis.nl)
Eventueel Inkscape (inkscape.org)

Benodigde bestanden
Kaartlaag met gebieden
Kaartlaag met data

Als voorbeeld is een vectorkaart van de Nederlandse provincies gebruikt als ondergrond. Daar bovenop is een laag geplaatst vanuit een csv-bestand. Dat bevat de x- en y-coördinaten van de gewenste gebiedsmiddelpunten en onder andere het aantal inwoners per provincie naar drie leeftijdsgroepen.

Beperkingen
Deze techniek is niet zo geschikt als zeer veel gebieden moeten worden weergegeven. Dit wordt al snel onoverzichtelijk. Bovendien is de staafbreedte is niet instelbaar.

Voorbereiding
Zorg dat de benodigde lagen geopend en volledig zichtbaar zijn.

Weergave staafdiagrammen

Selecteer de eigenschappen van de laag met de data (met rechtermuisknop) en ga naar het tabblad ‘Overlay’. Zet een vinkje voor ‘Display diagrams’ (‘Diagrammen tonen’) en selecteer ‘Bar chart’ (‘Staafdiagram’) als diagramtype. Nu moeten de attributen een voor een worden toegevoegd. In dit geval de bevolkingsaantallen per leeftijdscategorie. Selecteer een attribuut en klik op ‘Add’ (‘Toevoegen’) en herhaald dat voor de overige attributen.

Nu moet je opgeven hoe hoog de staven moeten worden. Meestal kan hiervoor het beste dat attribuut worden gebruikt met de hoogste maximale waarde op gebiedsniveau. Helaas pakt dat verkeerd uit als dit attribuut in een of meer regio’s nul is. Klik op ‘Find maximum value’ (‘Maximale waarde zoeken’) om de maximale waarde voor het geselecteerde attribuut te bepalen en geeft bij ‘Size’ (‘Grootte’) op hoe hoog de grootste staaf moet worden. In de huidige stabiele versie van QGIS (1.7.4) heeft het geen zin om bij ‘Size unit’ (‘Eenheden voor grootte’) te kiezen voor ‘Map units’ (‘Kaarteenheden’) in plaats van millimeters. Klik op ‘Apply’ om het effect van de gebruikte instellingen op de kaart te zien. Schuif hiervoor zonodig het dialoogvenster wat opzij. Noteer de ingestelde maximale waarde en de bijbehorende staafhoogte. Die heb je later nodig voor het maken van de legenda. Als het resultaat naar wens is, klik je op ‘OK’ om het dialoogvenster te verlaten.

Overigens mag ook handmatig een maximale waarde worden ingevuld. Met het oog op de legenda is vaak handig om die waarde iets naar boven af te ronden, om te voorkomen dat in de legenda ‘rare’ getallen komen te staan.

Soms is het ook nog nodig om op het tabblad ‘Style’ (‘Stijl’) de puntsymbolen 100 procent transparant te maken. Anders verschijnen er puntsymbolen in gebieden met hele lage waarden voor de geselecteerde attributen.

Legenda maken

QGIS bevat momenteel geen mogelijkheid om automatisch een legenda te maken voor een kaart met staaf-, taart- of cirkeldiagrammen. Hiervoor heb ik het losse programma LegendSVG geschreven dat elders op deze site kan worden gedownload. Pak het ZIP-bestand ergens uit en dubbelklik op LegendSVG.exe.

Met dit programma kan een legenda in SVG-formaat worden gemaakt die in de Print Composer van QGIS aan de kaart kan worden toegevoegd. Voor afmetingen gebruikt dit programma punten. Een punt is 1/72 inch en een inch is 2,54 cm. Afmetingen in millimeters (S) kunnen met de formule 72 x S / 25,4 in punten worden omgerekend.

Selecteer allereerst rechtsboven het juiste diagramtype (‘Bar chart’). De staafhoogte en de bijbehorende maximale waarde die je hebt genoteerd kun je invullen bij ‘Object size’ en ‘Maximal value’. Bij ‘Categories’ stel je het aantal staven in op 3. Omdat de staven een vaste breedte van 5 mm hebben hoef je ‘Bar width’ niet te veranderen. Verder kun je nu alle teksten aanpassen die in de legenda komen. Voor de manieren waarop je de kleuren kunt instellen verwijs ik naar de helptekst van het programma. De hoogte van de legenda wordt automatisch bepaald op basis van de ingevoerde gegevens. Dat gebeurt (nog) niet met de legendabreedte. Heb je alles ingesteld, klik dan op ‘Build SVG code’. Je ziet dan een boel codes verschijnen. Een SVG-bestand is eigenlijk een gewoon tekstbestand. Sla nu het resultaat op met de knop ‘Save to file’. Kies zelf een bestandsnaam. De bestandsextensie moet ‘svg’ blijven. Met de knop ‘Show measures’ kun je zien wat de afmetingen in millimeters zijn geworden. Noteer deze afmetingen, want je hebt ze verderop nodig in QGIS.

Voordat je de legenda in QGIS combineert met de kaart, kun je het resultaat bekijken met Inkscape. Met dit programma kun je de legenda eventueel nog aanpassen. Je zou er zelfs voor kunnen kiezen de hele afwerking van de kaart met Inkscape te doen, of met een ander grafisch programma. Dat wordt hier verder echter niet uitgelegd.

Kaartopmaak

Open een nieuwe Print Composer (‘Print layouter’) via het bestandsmenu. Zorg dat de kaart wordt weergegeven en voeg een titel toe. De legenda kan nu worden toegevoegd met de knop ‘Add image’ (‘Afbeelding invoegen’). Het kan ook via het Layout-menu. Klik nu op de plek waar de legenda moet komen. Er verschijnt een wit vlakje. Selecteer dit en stel rechts op het tabblad ‘Item’ (‘Onderdeel’) eerst de juiste afmetingen in (dat doet QGIS helaas niet automatisch). Open daarna het legendabestand met de knop met de drie punten naast het invoervak ‘Load’ (‘Laden’). Als het goed is verschijnt nu de legenda.

Nu kan het lijken alsof er iets fout is gegaan. In de huidige stabiele versie van QGIS (1.7.4) wijkt de weergave van de staven op de kaart in de Composer af van de weergave in het kaartvenster. Sla je echter vanuit de Composer de kaart op met ‘Export as image’ (‘Als afbeelding exporteren’) of als ‘Export as SVG’ (‘Exporteren naar SVG’) dan kloppen de afmetingen van de staven op de kaart wel weer met de afmetingen in de legenda.

Wil je de kaart liever in PDF-formaat, dan werkt dat momenteel niet goed als je ‘Export as PDF’ (‘Exporteren naar PDF’) gebruikt. Het werkt wel goed als je de kaart print naar een virtuele printer zoals bijv. PDF Creator.

5 thoughts on “Staafdiagrammen met legenda”

    1. The procedure in QGIS 2.0:
      1) Select the layer with the data and open the Properties dialog.
      2) Go to the Diagrams tab, enable ‘Display diagrams’ and select diagram type ‘Histogram’.
      3) On the Appearance tab choose the fields for each bar to be displayed.
      4) On the Size tab select the field for diagram size.

  1. Hello,
    thank you for a great plug.
    Could you tell me how to get rid of the black thin border around the legend? I’m trying to avoid any borders in my final map layout.

    1. Open the SVG file with a text editor (Notepad) and remove lines 4 (comment) and 5 (rectangle command). More extensive editing can be done with Inkscape.

  2. It is great but I want to know how to create and visualize graph only for selected region or Polygons. Many Thanks

    Ranjan

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>