I have imported a csv file via 'Open data source manager' > 'Delimited text' which has multiple locations all specified with Eastings and Northings, these are plotted fine and in the layer styling panel I've categorized on a particular header from the csv template and styled accordingly. All works great, however I wanted to know if it was possible and how you would go about it if when you're zoomed in and say only 3 of the 12 locations within this layer are showing on the canvas/screen then only those three locations are displayed in the layer panel?

I know this can be achieved in the print manager via a checkbox setting but I wanted to apply the same functionality to the main 'working' environment too if it was possible... Example

I'd only want the items circled in red showing when only these sites are in the canvas extent.

Bonus points for anyone who can tell me how I get the icons to be much smaller/not symbol in the layer list without affecting the object on the map canvas!

1 Answer 1


You can use the filter legend by map content button.

Just be aware that it severely slows down QGIS if there are many features in the layers.

enter image description here

  • Oh, that's so simple. Can't believe it was there in front of me all along!
    – MikeE
    May 18, 2021 at 14:03
  • To be honest, I always see this icon as a shortcut to filter the data, not the legend...
    – JGH
    May 18, 2021 at 14:09
  • Thanks, you're right it does slow down QGIS quite a bit. I'm guessing there's no way of applying that setting to just one or selected layers and have the other layers show in their entirety?
    – MikeE
    May 19, 2021 at 6:49
  • @MikeE not that I know unfortunately
    – JGH
    May 19, 2021 at 13:06

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.