[GIS] How to individually adjust spacing of legend items in QGIS print composer

print-composerqgis

I need to be able to have the spacing between all of the items in my legend be the same space apart, regardless of the symbol size. The answer to this question is close, but I need to have the symbols in the legend be exactly the same size as in the actual map.

How can I align the items in my legend so that the spacing between the text is equal? Additionally, it would be great to have the symbols in the legend be centre-aligned.enter image description here

I'm using QGIS 2.18.6.

EDIT: I've removed the other data irrelevant to this question to preserve some anonymity.

Best Answer

Add an extra symbol to each symbol in your styling. This has to be a transparent symbol of constant size, roughly equal to the largest symbol in your cartography. A bit like this:

enter image description here

but there the second symbol is a white circle with an outline (purely so you can see it!), of size 5.8mm. Make it transparent fill, and no outline. Do that for all your symbols. Then it won't show up in the map on the map composition, but it will influence the spacing of the legend:

enter image description here

Compare with:

enter image description here

which yes, is a bit ick (ignore the slight change in blue symbols for 205, I'd been mucking about with it).

I'm surprised regular spacing isn't already an option (maybe I couldn't find it either!). I wonder if there's a request for equally-spaced legend items already, the print composer is getting some love soon.

Actually, after asking if this could be a feature request, it turn out its already there but I couldn't find it. Use the symbol height option in the legend options. Here:

enter image description here

Increasing the "Symbol Height" here to something bigger than your largest symbol should result in evenly spaced legend items.

Related Question