3. Styling in QGIS
Style needs to be added to data to give it a useful visualisation on the map. Styles can be very simple (for example 'colour everything blue'), or more complex, with multiple rules and elements. This module covers some basic styling approaches and techniques, with pointers to more advanced techniques.
3.1. The Style Dialog
QGIS applies a random style to every layer when it is loaded (otherwise layers would not be visible). Set your own style using the Symbology tab in the Layer Properties dialog.
The table below lists the main style types QGIS supports - this course will cover those highlighted. Some styles are only available for certain geometry types.
Symbology type | Geometry | Description | Example | Comment |
---|---|---|---|---|
No symbols | All | The layer will not appear on the map. | Display the data using labels only | |
Single symbol | All | The same symbology will be used for all features | Location of villages | Symbol can be sized proportionately to an attribute value - for example population |
Categorized | All | A different symbology will be used for each unique value of an attribute | Crime types | Depending on values, each feature could have a unique style, or features could share the same style |
Graduated | All | For numeric data only, values can be 'banded', with each band having a different style, usually using a graduated colour ramp | Voting patterns | Number, size and statistical composition of bands can be set by user |
Rule-based | All | One or more rules can be used to determine styling | Ordnance Survey MasterMap | Used to apply more complex logic to styling, for example where the content of more than one attribute is used to determine style |
Point displacement | Point | Move points slightly if they are in the same location, or within a set tolerance of each other, so that they are all visible | Crime locations | Where representation of numbers is more important than geographical accuracy |
Point cluster | Point | Coalesces points which are in the same location or within a set tolerance of each other into a single symbol, with a number showing the count of the points included | Crime locations | Where representation of numbers and geographical accuracy to a certain zoom level is required, with numbers of points coalesced changing with zoom level |
Heat map | Point | Continuous surface of varying colour and intensity based on point density | Bird nesting locations | Best used to visualise point locations over an homogenous area |
Inverted Polygons | Polygons | Applies any styling inside the polygon to areas outside the polygon instead | Feathered border | Can be used to apply focus to polygons |
2.5 D | Polygons | Applices 3D-like shading based on fixed height values or attribute value | Buildings | QGIS also generates full 3D views |
Open essentials_03_styling.qgz and save it with a new name
Create a Single Symbol style for the canal_crt layer
Double-click on the layer, and go to the Symbology tab
Click on Simple Line to amend the properties of the existing style
Choose one of the styles in the lower part of the dialog and make some amendments to come of the style components (click on the Favorites dropdown above the symbols and change the setting to All Symbols to see more options)
Create a Single symbol style for the wind_turbines_point layer, using an SVG or Font marker
Go to Symbology for the layer
Click on Simple Marker, and change the Symbol Layer Type below it to SVG Marker
Select an appropriate (or inappropriate) SVG image from the dialog, and change the size and colour to suit
Do the same thing using Font Marker instead of an SVG Marker (choose a font such as Wingdings or Webdings)
Create a Categorized style for the osmm data using the theme attribute
In Symbology, choose Categorized from the dropdown at the top, and set Value to theme
Click Classify at the bottom of the dialog to set the colours
Double-click on the symbol for each value to change its style
Apply a Single Symbol style to aonb_wales, with some transparency or hatching so that the base layer can be seen behind it
Create appropriate symbols and name labels for the railway_naptan layer
Create a Graduated style for the surrey_neighbourhoods_crime layer, using the _burglary attribute
10.3.2. Styling the Map
Create a Single symbol style for the canal_crt layer- use and amend one of the QGIS styles, or create your own from scratch
Create a Single symbol style for the wind_turbines_point layer, using an SVG or Font marker
Create a Categorized style for the osmm data using the theme attribute
Apply a Single symbol style to aonb_wales, with some transparency or hatching so that the base layer can be seen
Create symbols and name labels for the railway_naptan layer
Create a Graduated style for the surrey_neighbourhoods_crime layer, using the _burglary attribute
You can edit the individual class styles:
Right-click on one of the styles to get a limited set of options (e.g. colour, size, opacity)
Double-click to see the full style dialog
You can also double-click on the text under the Legend heading to change it.
Graduated
Graduated styling requires numeric attribute values, and places them within ranges, each of which will be styled differently. The example below uses neighbourhood crime data, showing the number of vehicle crimes in one month per neighbourhood.
To apply a graduated style:
Select Graduated from the dropdown list
Under Column, select the field with the relevant data that you want to represent
Click Classify to create the class bands and apply the Color ramp
Adjust the settings and click Classify again if required
3.2. Re-using Styles
There are a number of ways to re-use a style. You can:
Copy/paste styles between layers: select the layer, right-click > Copy (or Paste)
Save a style in the QGIS native file format, .qml, for importing to another project: double-click the layer > Layer Properties > Symbology > Style > Save Style > QGIS Layer Style File
Save a style as an SLD (Styled Layer Descriptor), for use in other applications which support it: double-click the layer > Layer Properties > Symbology > Style > Save Style > SLD File
Load a style from QML or SLD:Â double-click the layer > Layer Properties > Symbology > Style > Load Style
QGIS and SLD
QGIS does not yet support all of the SLD standard in its export and import - there are some styles which will not be translated. You may also need to do some tweaking of the SLD file (which is in XML), depending on the application you are working with.
Create and import style libraries (groups of styles) for example for corporate use: Settings > Style Manager > Import / export
Set a style as a default, to be used when a layer is added to a project. This works well if the layers are stored in a PostGreSQL database, as the default styles are available to any user. File-based default styles are normally only be available to the local user: double-click the layer > Layer Properties > Symbology > Style > Load Style > Save as defaultÂ
3.3. Images
QGIS uses Scalable Vector Graphic (SVG) images as its native image format - other formats such as PNG and JPG can only be used if they are embedded in a SVG file. Graphics programs such as InkScape can be used to create SVG images. Images can be used in all geometry types - for point styles, for area fills, and for markers on a line. SVG images can be coloured and scaled, and combined to create composite images, so they are more versatile than some other formats.
To use an SVG image:
In the Symbol Selector dialog (where a specific symbol is configured), from the Symbol Layer Type dropdown list select SVG marker
Select the SVG marker to use from the library, or use the file manager view to browse to your own SVG image
Adjust the settings such as size and colour to suit your needs
3.4. Labels
Labels are also configured from the Layer Styling dialog (the Style Dock). To activate the labels dialog:
Click the button at the top of the Layers panel , or hit F7
In the Labels dropdown, select Single Labels
In Value, select the column to be used for labels
You can now adjust a range of settings for labels, including font, placement and formatting.Â
Here are a few pointers and tips:
If some labels are not appearing on the map, this may be because they are conflicting with other labels and so have been removed. Use Show all labels for this layer in the Rendering tabÂ
 so you can see all labels
Use the settings in the Buffer tab
 to draw a buffer or halo round labels so they stand out against a darker backgroundÂ
Use the Expression Builder buttonÂ
 (next to the Label with field) to build labels with expressions - for example concatenating two or more attribute values, or creating a total of numeric values
3.5. Annotations
Annotations provide a means of adding labels or images to a map which independent of the data. The formatting is flexible, so while by default they look like callouts, they can also be made to look like labels.
Create annotations by clicking the Text Annotation button in the Attributes toolbar - once this is activated, every time you click on the map canvas, an annotation will be created. Double-click an annotation to edit its properties: text, style, frame, marker etc.