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.


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 May 22 '18 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, privacy policy and cookie policy

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