Jo Wood

@jwolondon.bsky.social

Professor of Visual Analytics who does datavis, visualization storytelling and natural travel. Did I mention visualization?

Continuing with my #datavis project to create terrain maps in @observablehq.com Plot. Automatic placement of contour labels along 'contour ladders' ensuring labels are appropriately spaced, in a readable orientation and coherently clustered. Not straightforward so quite pleased with result.

Section of a terrain map with shaded relief and contour lines. Shows a north-south ridge in the central portion (the Helvellyn range in the English Lake District). Small contour labels can be seen in a line running down the western flank of the ridge on the left of the map. A similar left-right sequence of contour labels can be seen at the bottom of the map view. At the right-centre is pyramidal shaped peak with contour labels in a line down slope to the bottom right.

Because I am generating my maps in Observable and JavaScript, I am having to confront the second hardest problems in both Computer Science and Cartography: Sensible variable naming and label placement. I think their combination makes it the hardest problem in all disciplines.

Inset of a larger map of Lake District fells. It shows a shaded relief and contour surface centred around the Langdale Pikes with the summits of Loft Crag, Pike O'Stickle, Harrison Stickle, Pavey Ark, Thunacar Knott, Blea Rigg, Sergeant Man, High Raise and Tarn Crag, all indicated with a blue triangle. Part of the map title is shown in the bottom left with the "k Three Central Fells" seen (The "Boo" of "Book" outside the inset frame).

I have a long term project walking the 'Wainwrights' (Lake District summits). To add interest I am doing them only using public transport and my feet (like Wainwright) and in book order (like Wainwright!). This weekend I completed Book 2. I've been mapping my routes using @observablehq.com Plot.

Map of the Far Eastern fells of the English Lake District. The map is a shaded relief in sepia tones reflecting the 'red' colour of Wainwright's 'Far Eastern Fells' book. Major lakes of Ullswater (top), Haweswater (right) and Windermere (bottom-left) are shown in blue. The town of Ambleside in labelled at the bottom-left of the map. On top of the shaded relief, all 36 Wainwright summits are marked as dark red triangles with text below each giving its name. These are connected with red dashed lines generated from my GPS walking tracks. The title of the map in the bottom-right corner says "Book Two The Far Eastern Fells".Map of the Eastern fells of the English Lake District. The map is a shaded relief in green-grey tones reflecting the 'green' colour of Wainwright's 'Eastern Fells' book. Major lakes of Ullswater (top-right), Thirlmere (left) and Grasmere-Rydal Water (bottom-left) are shown in blue. The town of Ambleside in labelled at the bottom of the map. 

On top of the shaded relief, all 35 Wainwright summits are marked as dark green triangles with text below each giving its name. These are connected with green dashed lines generated from my GPS walking tracks. The title of the map in the bottom-right corner says "Book One The Eastern Fells".

Brilliant letter from Stuart Thompson to Jeremy Clarkson about his comments that benefit claimants should write weekly thank you letters to tax payers detailing how they spend their benefits each week.

To every trans Londoner: this city is yours too. Today we celebrate London Trans+ Pride and reaffirm a simple truth: you should be free to live as yourself, without fear or prejudice. You are loved. You are wanted. You belong here.

There are, in my view, 25 things everyone needs to understand in light of recent events: 1) Those out in our communities last night were not protestors, but organised far right extremists. 2) Their actions align with fascist ideologies. 3) So yes: these are fascist practices on our streets. 🧵

I didn't want to pollute this wonderful thread from Moose, so have kept this one separate, but it seems apposite today. Amazing how Prime Minister technology has developed. Our current Prime Ministerial average term of office (left) and an original 1980's term of office, the size of a brick!

A sketchy bar chart showing two bars. A short red bar on the left representing a value of 1.23 years average term of office for Prime Ministers in the 2020s (so far). Above it is the label "2020s". To its right a larger blue bar representing the value 11.57 years for the average term of office for the Prime Minister in the 1980s (who shall not be named). Within it is the label "1980s". The vertical axis labels to the left of both bars show 2, 4, 6, 8, 10 and 12 years.
MꙬse Allain@mooseallain.bsky.social · 4mo ago

I started this thread on twitter back in 2017. I add to it occasionally whenever the opportunity offers itself, but want to start it again so I can add to it on here. So… Amazing how grater technology has developed. My current grater (left) and an original 80s grater, the size of a brick!

Photo of a tiny cheese grater next to a normal size cheese grater

Now all election results for London are in, here is a 📊 BallotMap showing significant name-ordering bias in voting. See annotations / alt-text for details. The map shows us where people choose to split their vote between parties choosing from top of ballot paper, and where party loyalty dominates.

BallotMap for London showing name-ordering bias in voting behaviour.

Each large square is a London borough. Within each, the candidates for the main parties are shown as coloured small squares (Greens: green, Labour: red, LibDems: orange, Conservatives: blue, Reform: cyan, Aspire: pink). They are ordered in rows where the top row is the alphabetically first name within their party and ward, the second row alphabetically second, and the bottom row alphabetically last. Darker cells are those where the candidate was elected to office.

Only those in ballots where they were one of three party candidates shown.  Elected candidates indicated in darker colours.

This allows us to see where people have split their vote between parties, choosing just one or two from the slate of three in a given party. 

A ◥ shape in a party's distribution indicates voting perference for candidates with names closer to start of alphabet.

Boroughs with split votes showing strongest bias include Haringey (Hgy), Ealing (Elg), Hounsalow (Hns), Wansworth (Wns) and Southwark (Swr). Boroughs with the lest name bias effect are those with strong party preference such as the Liberal Democrats in Richmond (Rch) and Kingston (Kng); Aspire in Tower Hamlets (Tow); Reform in Havering (Hvg); and all parties in Hillingdon and in Bromley.

Voting data: Democracy Club, 11th May, 2026, downloaded at 18:00

If your name wasn't near the front of alphabet you had less chance of being elected yesterday. 📊 For wards with 3 candidates standing per party, we can compare alphabetical name ordering with vote ordering by party If no name bias we'd expect all squares to have the same number of candidates. But…

A set of 6 'bias matrices' arranged in two rows of 3. Each matrix comprises a 3 by 3 grid along 2 axes: Horizontal, rank of votes received within party (1st, 2nd, 3rd); vertical, alphabetical rank of candidate name within the party they are standing for (1st corresponding to names near the top of the alphabet, 3rd near the bottom of the alphabet).

The 6 matrices show respecictively:

Top-left (greys) - counts for all parties with 3 candidates submitted;
Top-centre (blues) - counts of Conservative candidates where 3 Conservative candidates were standing.
Top-right (reds) - counts of Labour candidates where 3 Labour candidates were standing.
Bottom-left (greens) - counts of Green Party candidates where 3 Green candidates were standing.
Bottom-centre (cyans) - counts of Reform UK candidates where 3 Reform candidates were standing.
Bottom-right (oranges) - counts of Conservative candidates where 3 Conservative candidates were standing.

All grids show a strong name bias with higher numbers of candidates both first in terms of party votes and first alphabetically; higher numbers of candidates 2nd and 2nd; 3rd and 3rd.

The effect is strongest for Labour and the Greens and weakest (but still dominant) for the LibDems and Reform.

Some insightful commentary on the effects tech labeled as AI is having in higher education. "The problem isn’t that instructors don’t want to evaluate—it’s that the familiar signals no longer mean what they used to."

Brendan Nyhan@brendannyhan.bsky.social · 6mo ago

Highly recommend @kylesaunders.bsky.social on why AI is so unsettling to higher ed - one of the best pieces I have read on this issue: "[U]niversities don’t merely teach. Universities certify, sort, and signal. And AI interferes with all three at once." kylesaunders.substack.com/p/why-higher...

I am pro Iranian people. I stand with them against their own government’s repression AND against the imperial violence in the form of bombs dropped from the sky from Israel & the US who have already killed hundreds. I support neither imperialism or dictatorship. Sahar Delijani said it best:

I was born in an Iranian prison. My parents were held in their jails. My uncles lie in their mass graves.
Nothing you can tell me about the crimes of the Iranian regime that I haven't lived in blood and bone.
That doesn't mean I want my people bombed, maimed, killed, their homes in ruins.
If your vision of liberation comes only through the destruction of innocent lives, then it's not freedom you're after.
Sahar Delijani, Iranian author

This was a great conversation (Andy has such an encouraging and engaging presence) with interesting examples from Nicola and Ansgar. Well worth a listen. I did the #30daymapchallenge twice and it almost broke me, but resulted in a wealth of learning experiences and body of work I still draw upon.

Andy Kirk@visualisingdata.com · 6mo ago

NEW EPISODE! I chatted with @nrennie.bsky.social & @ansgarw.bsky.social about the #30DayMapChallenge and took a close look at 5 of their respective works. visualisingdata.com/2026/02/expl...

Shadowed somewhat by the more egregious fabrication of "Tactical Choice" by Labour in the Gorton and Denton by-election was this chart crime. Although credit to them, they did at least provide some handy grid squares for checking that non-zero axis problem.

Photo a leaflet provided by the Labour Party (Photo credit: Green Party) on the eve of the Gorton and Denton by-election. It shows a bar chart with 4 hours representing the predicted proportion of the vote for 4 parties: 32% Reform in teal; 31% Labour in red; 28% Green in dark grey; and 9% others also in dark grey. The heights of the bars show a larger gap between Labour's 31% and Green's 28% than we would expect if height was linearly scaled with value. It suggests the baseline of the scale is a value greater than 0. In the background of the bar chart area is a regular grid square pattern of grey lines.

The text in the top right of the bar chart region reads "Source: Britain Predicts" with small print below it reading "(not including polling funded by Green Party donors)". 

To the right of the bar chart is text reading "Your polling day checklist. Remember to bring your ID to vote; Find your polling station at iwillvote.org.uk; Polls are open from 7am to 10pm"

I do think one of the most significant developments in computing in the last decade (apart from ~that~ one) has been the computational notebook. Browsing through my @observablehq.com notebooks, they capture my visual and computational thinking more effectively than anything that preceded them.

A grid of 140 small images representing the 'thumbnails' of Observable notebooks. Below each is a small block of text (largely unreadable at this scale) with the title of each notebook.

New year, new set of Du Bois reproduction challenges. Quite mappy this year, so plenty of opportunity for some faithful reproductions. I’ve found precise vis reproductions a valuable way of improving design skills. Think of it as “close reading” for design.

Data Visualization Society@datavizsociety.bsky.social · 7mo ago

Advance your #dataviz skills by joining the weekly 2026 Du Bois Visualization Challenge. Starting today, re-create visualizations from the 1900 Paris Exposition using modern tools. More details: github.com/ajstarks/dub....