Staafdiagrammen met legenda

This article describes how to create a map with bar charts and a legend.
Required software
Quantum GIS (qgis.org)
LegendSVG (qgis.nl)
Inkscape (optional) (inkscape.org)
Required files
Map layer with areas
Map layer with data
As an example, a vector map of the Dutch provinces is used. On top of this a layer is placed from a csv file. It contains the x and y coordinates of the centroids and the number of inhabitants by province, divided into three age groups.
Limitations
This technique is not suitable if a lot of areas are to be displayed. The map would become very cluttered. Another limitation is that bar width is not adjustable.
Preparation
Make sure the required layers have been opened and are fully visible.

Displaying bar charts

Select the properties of the layer with the data (right mouse button) and go to the tab ‘Overlay’. Put a check mark before ‘Display diagrams’ and select ‘Bar chart’ as chart type. Now, the attributes can be added one at a time. In this case, the population numbers per age group. Select an attribute, click ‘Add’, and repeat this for the other attributes.

Now you must specify the bar height. Usually, the attribute with the highest maximum value at the regional level will be used to determine the maximum bar height. Unfortunately, that will go wrong if this attribute is zero in one or more regions. Click ‘Find maximum value’ to determine the maximum value for the selected attribute and set the maximum bar height (‘Size’). In the current stable version of QGIS (1.7.4) it has no effect to select ‘Map units’ as size unit in stead of millimeters. Click ‘Apply’ to see the effect of the settings on the map. If necessary, move the dialog somewhat to the left, in order to see the map. Write down the settings for maximum value and maximum bar height. You will need this information later, if you create a legend. If the result is what you want, click ‘OK’ to exit the dialog box.
You can also enter the maximum value manually. For the readability of the legend it is better to use a rounded number.
Sometimes you also need to make the points symbols 100 percent transparent (on the ‘Style’ tab). Otherwise, point symbols will appear in areas with very low values ​​for the selected attributes.

Create legend

Currently, QGIS has no option to automatically create a legend for a map with bar, pie or circle charts. For this I wrote the program LegendSVG, to be downloaded on this site. Unzip the file somewhere on your computer and double click LegendSVG.exe.
With this program, a map legend in SVG format can be made. The legend can be added to the map in the Print Composer. LegendSVG uses points a measuring unit. One point is 1/72 inch and one inch is 2.54 cm. Dimensions in millimeters (S) can be converted to points with the formula: 72 x S / 25.4.

First, select the chart type (‘Bar chart’). The bar height and the corresponding maximum value that you wrote down, can be filled in at ‘Object size’ and ‘Maximal value’. At ‘Categories’, set the number of bars to 3. Because the bars have a fixed width of 5 mm in QGIS, you don’t have to change ‘Bar width’. Now you can customize all text that will appear in the legend. For the different ways to set the colors I refer to the help text of the program. Legend height is calculated automatically, based on the data you have entered. This is not (yet) done with legend width. If the settings are complete, click on the ‘Build SVG code’ button. Several lines of code will appear. A SVG file is basically a text file. Now save the results with the ‘Save to file’ button. Choose a filename. The file extension should remain ‘svg’. With the ‘Show measures’ button you can see what the dimensions in millimeters have become. Write these dimensions down, because you will need them later in QGIS.
Before you combine the legend with the map in QGIS, you can inspect the result with Inkscape. With this program you can modify the legend, if you wish. You could also choose to finish the entire map with Inkscape, or some other graphical program. However, this will not explained further.

Map lay-out

Open a new Print Composer (“Print layouter”) from the ‘File’ menu. Make sure the map is displayed and add a title. The legend can now be added with the ‘Add image’ button. You can also use the ‘Layout’ menu. Now click on the spot where the legend should appear. A white rectangle appears. Select this rectangle and in the right panel on the ‘Item’ tab enter the right size (unfortunately, QGIS unfortunately does not do this automatically). Then open the legend file using the button with the three dots next to the ‘Load’ box. If all went well the legend will appear.
Now it may seem as if something went wrong. In the current stable version of QGIS (1.7.4) the appearance of the bars in the Print Composer differs from the appearance on the map canvas. After you save the map with ‘Export as image’ or ‘Export as SVG’, the size of the bar charts on the map will match the size on the legend again.

You can also save your map in PDF format, but currently the menu option ‘Export as PDF’ does not work well with bar charts. You can solve this by printing to a virtual printer such as PDF Creator. Continue reading “Staafdiagrammen met legenda”

Meerdere objecten / features tegelijk aanpassen / editten

Sometimes you find new QGIS functionality when a user asks you a question. Somebody working with house geometries was looking for a way to copy the same attributes to a set of selected houses. He was looking if certain types of houses in a city were usable for solarpanels on the roof. And often a block of houses share off course the same properties.
After a question on the QGIS-user mailinglist the answer came: “off course this is possible…”. Here a short demonstration of this.
Continue reading “Meerdere objecten / features tegelijk aanpassen / editten”

Een kleurenschema voor de TOP10NL

When opening a geo-file for the first time in QGIS, random colors are assigned to the points, lines, and polygons. QGIS offers excellent features to design and use color style schemes. This article describes how to do this, with the objective as follows:

Figure 1. Adding Styles

I was just seven years old when someone gave me the special topographic edition of the Walcheren map (scale 1:25,000), which completely blew me away. My general love for graphic design expanded with a passion for cartographic styling. So, when Kadaster (the Dutch national mapping agency) finally offered their famous dataset “Top10NL” (meaning: Netherlands vectorized at a nominal scale of 1:10,000) for free (as GML files), I was in a state of total bliss. At last I was able to style the famous topographic Dutch map with my own color styles. Moreover, QGIS directly reads GML files, so I thought this was going to be an easy job.
Continue reading “Een kleurenschema voor de TOP10NL”

Invoerformulieren gebruiken in QGIS

QGIS has something called forms to make it easier to change te attributes of an object. This article is about the use of these forms. As exampel we use a dutch dataset of the houses of the netherlands (BAG) which only contain geometries and not other attributes. These we are going to add ourself.
We start with a shapefile with the house geometries. With the Python Plugin ‘Table Manager’ of Borys Jurgiel it is pretty easy to add columns to the shape file. Just adding a name and a type of th column. It is also possible to change the order of the columns in the shape file.

In this way we created a shape file with attritutes to help us to do our imaginary ‘solar panel’ research. For every house we want to know if the user is interested in solar energy. And if that is the case, also check what other properties the house and it’s roof has.
Continue reading “Invoerformulieren gebruiken in QGIS”

Legenda maken met LegendSVG

QGIS does not create a proper legend for maps with pie charts or circles with variable size. I wrote a program to produce legends in Scalable Vector Format (SVG). In the QGIS Composer, the result can be added to the map as an image. If necessary, the legend can first be modified with a SVG-editor like Inkscape.
Download the program here:
LegendSVG (Windows)
LegendSVG (Linux)