I am making a bivariate symbol map in QGIS in which, the size of the symbol depends on one variable whereas the color on other. For example, I have taken India data from https://simplemaps.com/data/in-cities and added variable v1 ranges from 1-100 and variable v2 ranges from 1-5. Now, size is defined using v1 and color using v2. To create map (refer Making bivariate proportional symbol map in QGIS)

enter image description here

Now, for defining size, my variable takes integer values from 1-5, but the color are shown for decimal values too:

enter image description here

How to fix this, so that color are generated only for 1, 2, 3, 4 & 5?

  • Where did you find 'Symbol fill colour'?
    – Taras
    Jun 9, 2021 at 15:18
  • I suggest you set you classification mode to natural breaks (jenks) while using the colour of your layer for classification. The size can be controlled using data defined override. If you don't want to directly correlate size field and actual size, you may enter any valid expression in order to manually categorize your sizes into classes.
    – Erik
    Jun 9, 2021 at 16:08
  • Symbology -> Graduated-> Symbol->Symbol Setting-> Simple Marker->Fill Color->Data defined override -> Assistant
    – rgt
    Jun 10, 2021 at 5:30
  • I could get different colours for different values using expression. case when v2 = 1 then '#480032' when v2 = 2 then '#005792' when v2 = 3 then '#fc92e3' when v2 = 4 then '#f2f4c3' when v2 = 5 then '#346751' end But is there any way to do it directly, without writing expression?
    – rgt
    Jun 10, 2021 at 11:41


Your Answer

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