+ - 0:00:00
Notes for current slide
Notes for next slide

Image credit: Andisheh Nouraee

Even beautiful maps can be misleading

How decisions about spatial data visualisation affect map legibility

Sam Langton & Réka Solymosi

NSCR & University of Manchester

19/01/2022

1 / 40
2 / 40

Image credit: Andisheh Nouraee

Maps: visual representation of spatial data

3 / 40

About us

Réka Solymosi

UoM Logo

SSI Logo

4 / 40

About us

Réka Solymosi

UoM Logo

SSI Logo

4 / 40

Why maps?

5 / 40

Much of human activity happens 'somewhere'

6 / 40

So we see maps everywhere

???

Image credit: BBC News

7 / 40

Some are very useful!

Optimal Manchester brewery crawl (see https://www.ncalvert.uk/posts/drunkensalesman/)

8 / 40

But maps can pose issues

9 / 40

Image credit: XKCD

Sometimes bad maps are funny

10 / 40

Some people collect bad maps

11 / 40

Key considerations

12 / 40

Key considerations

- What is the intended message?

12 / 40

Key considerations

- What is the intended message?

- How do different maps convey this message?

12 / 40

Two key fields

13 / 40

Two key fields

- cartography

13 / 40

Two key fields

- cartography

- (non-spatial) data visualisation

13 / 40

Image credit: Wikimedia commons)

Empirical understanding of how people perceive different "viz"

14 / 40

Example 1: Pie charts

15 / 40

Example 1: Pie charts

Image credit: Robert Kosara

15 / 40

Example 2: Tufte charts

16 / 40

Examples in cartography

17 / 40

Addressing a specific problem: variation in the size and shape of areas

18 / 40

Eg: USA States

19 / 40

Eg: UK Local Authorities

20 / 40

Message often obscured

21 / 40

A fix: distort polygons

22 / 40

23 / 40

How does this affect perception?

24 / 40

Our focus: EU referendum results

25 / 40

4 types of distortions

26 / 40

(a) Balanced cartogram

27 / 40

(a) Balanced cartogram

siu <- 0.02 # the smallest interpretable unit
height <- 5
bb <- sp::bbox(map)
width <- (bb[1,2] - bb[1,1]) / (bb[2,2] - bb[2,1]) * height
bbA <- (bb[1,2] - bb[1,1]) * (bb[2,2] - bb[2, 1])
mapA <- rgeos::gArea(map)
minA <- (siu * bbA) / (height * width)
map$scaleby <- rgeos::gArea(map, byid = TRUE)
map$scaleby[map$scaleby < minA] <- minA
# Use this to scale cartogram
balcarto <- cartogram::cartogram(map, "scaleby", maxSizeError = 1.1, prepare = "none")
27 / 40

28 / 40

(b) Hexogram

  • same idea as balanced carto, with minimum value being what allows each area to be represented as its own hexagon
29 / 40

(b) Hexogram

  • same idea as balanced carto, with minimum value being what allows each area to be represented as its own hexagon

  • hexagons are produced using the hexagonal binning function in R’s fMultivar package, based on the centroids of each polygon

29 / 40

(b) Hexogram

  • same idea as balanced carto, with minimum value being what allows each area to be represented as its own hexagon

  • hexagons are produced using the hexagonal binning function in R’s fMultivar package, based on the centroids of each polygon

  • our example:

# Get the function needed
script <- RCurl::getURL("https://raw.githubusercontent.com/profrichharris/Rhexogram/master/functions.R")
eval(parse(text = script))
# Number of bins guided by the -binN- function for a visual plot.
# 29 is also used by Harris in example.
harris.29 <- hexogram(LAE.sp, 29)
# Extract the hexograms
harris.29.hex.sp <- harris.29[[2]] # 2 is hexo
29 / 40

30 / 40

(c) geogrid squre grid

31 / 40

(c) geogrid squre grid

  • From Joseph Bailey

  • Calculates a grid that strives to preserve the original geography.

31 / 40

(c) geogrid squre grid

  • From Joseph Bailey

  • Calculates a grid that strives to preserve the original geography.

  • 2 steps to using this

    • 1 - Generate grid by varying the seed

    • 2 - Efficiently calculate the assignments from the original geography to the new geography

31 / 40

(c) geogrid squre grid

  • From Joseph Bailey

  • Calculates a grid that strives to preserve the original geography.

  • 2 steps to using this

    • 1 - Generate grid by varying the seed

    • 2 - Efficiently calculate the assignments from the original geography to the new geography

  • Our example:

# step 1 generate grid
LAE.reg <- calculate_grid(shape = LAE.sp, grid_type = "regular", seed = 1) #1 was our fave seed
# step 2 calculate assignments
LAE.reg <- assign_polygons(LAE.sp, LAE.reg)
31 / 40

32 / 40

(d) geogrid hexagonal grid

  • Same idea as with grids but for hexagons:
# step 1 generate grid
LAE.hex <- calculate_grid(shape = LAE.sp, grid_type = "hexagonal", seed = 1)
# step 2 calculate assignments
LAE.hex <- assign_polygons(LAE.sp, LAE.hex)
33 / 40

34 / 40

"High values (in yellow) appear to be clustered near one another, with a handful of outliers elsewhere in the country"

35 / 40

"High values (in yellow) appear to be clustered near one another, with a handful of outliers elsewhere in the country"

- 5-point Likert scale (strongly agree, slightly agree, neither agree nor disagree, slightly disagree, strongly disagree).

35 / 40

"High values (in yellow) appear to be clustered near one another, with a handful of outliers elsewhere in the country"

- 5-point Likert scale (strongly agree, slightly agree, neither agree nor disagree, slightly disagree, strongly disagree).

  • Higher agreement = better representation of statement in map
35 / 40

"High values (in yellow) appear to be clustered near one another, with a handful of outliers elsewhere in the country"

- 5-point Likert scale (strongly agree, slightly agree, neither agree nor disagree, slightly disagree, strongly disagree).

  • Higher agreement = better representation of statement in map

  • Convenience sample (internet) of 768 respondents

35 / 40

Results

36 / 40

Results (contd.)

37 / 40

Conclusions

  • New methods to visualise geographic information can convey a message more accurately than original thematic maps.

  • But choose the method with consideration to the research question and the data!

38 / 40

Crime Mapping

Forthcoming textbook based on our UoM Crime Mapping module:

39 / 40
2 / 40

Image credit: Andisheh Nouraee

Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow