I have lots of layers with lots of rule-based styling in my QGIS project, although I would like to display in legend for my print composer only those features that are actually present on a current map extent.

In ArcGIS I would use an option "Only show classes that are visible in the current map extent", so I wonder if there's something similar in QGIS.

Of course there is a manual solution but it is not an option in many cases.

2 Answers 2


Yes, there is an option in QGIS 3. ( I use v3.02 )

But, I guess it has some refreshing issues. When I check the option, no refreshing immediately although I've checked 'Auto update' option.

In my data 'Building' layer has seven different types of building and only those in the map extent are displayed

enter image description here

  • Thanks, I tried this option but it seems like it doesn't work (tried in QGIS 3.0.3) or requires more actions than just checking the box.
    – Basile
    Commented May 22, 2018 at 9:50

Try selecting "Only show items inside linked map feature" under "Legend Items" in the legend's Item Properties, as well as selecting the map to which the legend should be linked in the Main Properties (working in QGIS 3.10.1).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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