Skip to main content

Visualising petition data

Maps are great. They can quickly communicate a lot of information. But sometimes, depending on the dataset you are visualising, a standard geographic representation can give a misleading impression. A good example of this is an election results map. If your point is to show the demographic data, just colouring in geographic constituencies means your visualisation will be biased by the geography. Bigger, rural, constituencies look more important than smaller, urban, ones despite them having the same impact in Parliament. We've settled on hex maps (cartograms) as a better way to show this type of data.

Last week, a friend asked me if I'd make a hex map visualisation of the petition about the University pension scheme. Looking at the UK Parliament Petitions website I saw that they provide great meta data about each petition and also provide a breakdown of the number of signatures by constituency (using standard identifiers). We've previously created and published a UK constituencies hex map so it turned out to be quite straightforward to implement.

Hexing petitions

Rather than just make something that showed the one petition my friend was interested in, I created a tool that will show a visualisation of any petition on the Petitions website. You just change the URL to include the ID of the petition. You can see the distribution of people wanting to update the UK Traffic Signs Regulations to a geometrically correct football, those wanting to abolish the subsidy on food and drink in the Palace of Westminster restaurants, or make Hedgehogs a Protected Species.

Using hex maps lets you see the differences between constituencies really easily. It also lets you compare different petitions. The petition to ban driven grouse hunting seems to be correlated to the areas where grouse hunting takes place. The opposing petition that demands that the government don't ban grouse hunting is most popular in the constituency of Chelsea and Fulham. Presumably the residents of Chelsea are more likely to participate in grouse hunting.

  • Hex map showing signatures for banning grouse hunting.
    38,590 signatures for the petition "Ban driven grouse hunting"
  • Hex map showing signatures for banning grouse hunting.
    15,073 signatures for the petition "Don't ban grouse hunting"

You can find yourself going down a rabbit hole of petition visualisations. The petition "Let all UK citizens vote on who is mayor of London not just Londoners" caught my attention. When mapped, unsurprisingly, it isn't hugely supported by Londoners. But there is a notable geographic spread to the signatures supporting the petition. Switching to a map showing the estimates of how each constituency voted in the 2016 EU Referendum showed a fairly strong anti-correlation. Areas that were strongly against the EU having influence over the UK also seem to want to have influence over a UK region that they don't live in.


After showing a few maps openly on Twitter I had some useful feedback from people who know far more about the petition data than I do. There are known biases in who signs petitions. Cristina Leston-Bandeira and Oli Hawkins both pointed out that Bristol West and Brighton Pavilion are "more petition-ey"; they are very politically active constituencies and are nearly always hot-spots. Perhaps I should add a button that shows a visualisation of the constituency's contribution to the petition compared to an expectation based on their history of signing petitions.

What interesting patterns can you find?