I'm using QGIS 2.18. The screenshot below shows the print composer.

enter image description here

At the moment, the only way I can reduce the size of symbols in the print composer is to reduce the size of the symbol on the map.

In the attached, the green star symbol in the print composer legend is huge. How can I reduce the size of the green star symbol in the print composer legend, but keep the size of the green star the same on the map?

  • 1
    I think the issue is raised from the fact that you're creating a plan, not a map. From my (brief) time in architecture, trees weren't symbolized more than they were represented as drawing objects with defined dimensions (mostly the diameter). Symbology and semiology have rules that we must adhere to that applies to abstract representations of objects. In this case you're trying to show the relative sizes of the trees and I feel creating actual objects instead of symbolizing them would work better. – Gabriel C. Jan 28 '19 at 19:05

I suggest to :

  1. Duplicate the layer (Right click on it in the layer panel and duplicate)

  2. Give a small size to the duplicated layer

  3. Refresh in the print composer ( you will have two "Coniferous Tree" Layers)

  4. Uncheck the "Auto Update button", select the Bigger layer and remove it from the legend

enter image description here

| improve this answer | |
  • Thanks that feels like a workaround rather than a solution. Is there not a direct solution? – luciano Jan 28 '19 at 16:09
  • 2
    @luciano I'd invite you to take a look at this nice primer on legends in cartography (but it applies to statistics in general, too). The important part: Legends should ALWAYS explain symbology exactly as it looks on the map. Legend symbols should be exactly the same size, orientation, color, etc. as they appear on the map. This is probably the main reason why it is not a feature and requires workarounds to achieve. – Gabriel C. Jan 28 '19 at 18:50

In QGIS 3.x (and QGIS 2.18 as well) you can easily configure different symbol sizes in your legend via expressions based sizing. If "Legend" is the Item ID of your legend use the following expression for your symbol size (i.e. 5 in legend, 10 in canvas/map):

if(@item_id = 'Legend',5,10)
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.