Heatmaps and hotspot maps in QGIS: understanding the differences
In spatial analysis, heatmaps and hotspot maps are two powerful techniques for revealing concentrations or areas of interest from geographic data. While their appearance may be similar – colored areas suggesting densities or hotspots – they are based on different logics and serve distinct purposes.
Heatmaps: visualizing raw density
Heatmaps, generated by the Kernel Density Estimation tool in QGIS, visualize the density of points in a given space. They do not take into account feature attributes (unless a weighting field is used), but simply spatial proximity.
Their typical use is to visualize where events such as road accidents, offences or emergency calls are concentrated.
Features:
- Result: continuous raster (image) where each pixel represents a density.
- Key parameters: search radius, pixel size, weighting field (optional).
- Purely descriptive method.
Hotspot maps: identifying statistically significant clusters
Hotspot maps, on the other hand, rely on spatial statistical analysis to detect abnormally high (hotspots) or low (coldspots) clusters of values. In QGIS, this is done via the Cluster and Outlier Analysis tool (Anselin Local Moran’s I) or using the Hotspot Analysis plugin.
Their typical use is to identify neighborhoods where burglaries are significantly higher than in neighboring areas.
Features:
- Output: vector or raster layer with typology (hotspot, coldspot, insignificant).
- Requires a value field (number of cases, rate, etc.).
- Statistical method → more robust interpretation, but also more demanding.
Similarities and differences
Criteria | Heatmap | Hotspots map |
---|---|---|
Input data | Points (or point events) | Points or polygons with attributes |
Result | Density raster | Thematic map (typology) |
Method | Descriptive | Statistical (significant cluster) |
Main use | Rapid visualization | In-depth analysis |
Value consideration | Optional (weighted field) | Mandatory (field to be analyzed) |
Tools in QGIS | Density by kernel | Anselin Local Moran / Plugins |
Here’s a step-by-step tutorial for creating a heatmap and hotspot map in QGIS.
Tutorial QGIS – Heatmaps and Hotspots
PART 1: Creating a heatmap
Objective: Visualize point density as a colored raster
Steps :
- Load point layer
- Menu: Layers > Add a layer > Add a vector layer
- Load your point file (e.g. ecoles.geojson)
- Open the “Create heat map” tool
- Menu: Treatments > Toolbox > Interpolation
- Search for “Heat map (Core estimation)”.
- Set tool parameters
- Input: your point layer
- Weighting field: leave empty or choose a field if your points have a value (e.g. number of reports)
- Kernel type: Quadratic
- Search radius: 1500 m (adapt to your needs)
- Raster resolution: 10 or 20 m
- Output file name: heatmap.tif
- Start processing
- Stylize heatmap
- Right-click on raster layer > Properties > Symbology
- Rendering type: Single-band pseudo-color
- Choose a color gradient (Reds, Viridis, Inferno, etc.)
- Interpolation: Linear
- Adjust min/max values as required
Result: A continuous map where yellow areas indicate a high density of points.

PART 2: Create a map of hotspots (significant concentrations)
Objective: Identify areas with significantly high hotspot density
Simple method (aggregation + calculation)
- Create a regular grid
- Menu: Treatments > Toolbox > Create grid
- Grid type: square or hexagonal
- Size: 500 m (adapt to your scale)
- Extent: use the footprint of your point layer


- count points per cell
- Menu: Vector > Analysis tools > Points in polygons
- Polygons: the grid
- Points: your point layer
- Output field: nb_points

3 .Calculate standardized values (simplified Z-score)
- Open the grid attribute table with nb_points
- Launch Field Calculator
- Create a z-score field with: (“nb_points” – mean(‘nb_points’)) / stdev(“nb_points”)

4 . Stylize hotspot map
- Right-click > Properties > Symbology
- Mode: Graduated
- Field: zscore
- Palette: red → blue (red areas = hotspots)
- Sort by quantiles or equal intervals
Result: a colored grid indicating where density is above or below average.
