I have a list of UK postcodes and a number of participants in a survey. I would like to map the first three letters of the UK postcode and I would like a shape....a circular shape for example which will show a figure and its size is relative to the figure, ie. 50% is half the size of 100% in each postcode area. This will show how many people participated from different areas.

I am totally new to QGIS and I was hoping that I could get a link to either a guide on how to do this, or link to practice data together with a step-by-step guide.

  • 1
    Two questions to clarify what you already have: Are the postcodes and survey already spatial data? And does the list of survey participants have the postcode for each survey?
    – Micha
    Jul 5, 2015 at 7:24
  • The free data from ordnancesurvey.co.uk/business-and-government/products/… is already spatial. See also gis.stackexchange.com/questions/85631/… if you want polygons.
    – AndreJ
    Jul 9, 2015 at 7:54
  • using the opendata csv you can create postcode polygons using GRASS [GIS] here is an example r-bloggers.com/gb-postcode-polygons-open-data *links to a 2018 created dataset
    – Mapperz
    Jun 17, 2020 at 21:51
  • I reopened this tread again because the first answer was too general to answer correctly to the innitial question. I am in the same situation so i'm providing another solution and in the same time asking for new answers Thank you for your understanding
    – Honk
    Jun 19, 2020 at 7:59

1 Answer 1


Assuming you have a spatial table for post codes and a .csv containing number of participants with a name or id that is common to both the spatial file and the .csv, the following tutorial will enable you to create a spatial file of the required data: http://www.qgistutorials.com/en/docs/performing_table_joins.html

If your new postcode file is not points then you need to use the following answer to get centroid points from postcode polygons: How to determine the centroid of polygons?

Once you have your points you can use the "Layer Properties" dialogue to create your desired circles (use "Graduated" in style) see http://docs.qgis.org/2.0/en/docs/training_manual/vector_classification/classification.html

Create labels (use the expression: left( "Postcode_name_field" ,3) to get the first three characters of the postcode name - see my favourite: Learning to use expressions in QGIS?

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.