I am creating a Poverty Choropleth from a vector file using polygons to represent each county in the United States. I joined the poverty Excel file with a text file to convert the poverty column from a string to an integer.

I used a graduated symbol style, but some of my states are not getting filled.


If I used a single symbol, all my states appear just fine like this:


I am completely new to QGIS, I would like to understand how to fix this?

Reference files

  • 1
    Use the identify tool to select the features that aren't showing. The column that is being used by the symbology renderer should be included in the 'buckets' of the renderer... side question - are you new to 'gis' in general, or just 'QGIS'? Thanks! Mar 21 '19 at 2:16
  • I'm new to GIS in general. But I will try this out, and let you know soon! @DPSSpatial Mar 21 '19 at 2:19
  • I've been messing around with this all night, but I don't know how to make sure the column is included in buckets of the renderer. How exactly do you do this? Mar 21 '19 at 14:37
  • I was having the same issues with this US County Dataset. I figured out a way to preserve the leading zeros in my CSV file. That did the trick! Thanks for the help! Mar 1 '20 at 17:24

There is a few things going on in that CSV that need to be cleaned up before using in QGIS.

Unfortunately its a bad dataset for someone new to QGIS...

  1. First, be super careful using the CSV that you don't lose the leading 0 in the GEOID column. Without that, you can't join to the Counties on their GEOID (Census chose to put leading 0's in all their GEOID* columns ... we don't ask why)

  2. The CSV has some extra text at the bottom that should be removed

  3. Be sure to remove the record for Hawaii that has a '.' in the value for poverty. That is causing the big issue here, which is the poverty values in the CSV being read as 'text' rather than 'integers'.
  4. Take out the text at the bottom re. the Source of the data
  5. You could probably take out the record for USA... it won't be used in the map, but might throw off the buckets in the renderer

  6. Lastly - I tried to use the 'import CSV' option, but it reads the GEOID as integer, and loses the leading 0. By simply dragging and dropping the file onto QGIS, it adds the CSV differently and reads all the fields as STRING.

With this said, you'll have to render the poverty data column by converting it to INT in the renderer using this statement:

to_int("est10all_Poverty Estimate All Ages" )

enter image description here

That way the join works fine (at least for CO counties, which are missing from your map because of the leading 0 problem), and the values are all picked up by the renderer (which wasn't the case when I first loaded the data): enter image description here

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.