Using a jagged baseline to indicate a broken y-axis

In an article for the recently created Data Visualisation Society, R.J. Andrews suggests using a jagged baseline to indicate a broken y-axis (i.e., an axis that doesn’t start at zero). The idea - inspired by some beautiful charts dating back to WWI - is to suggest that the bottom part of the chart has been torn off. I like the idea - but I found it isn’t easy to implement.

Contrary to the view of some chart fundamentalists, using a y-axis that doesn’t start at zero can be perfectly ok in some situations. Still, one might want to alert the reader that the zero line is missing. One way is to add a little zigzag or some other symbol to the y-axis, as shown here. And then there’s Andrews’ suggestion to use a jagged baseline.

I tried to implement this in a chart that shows the number of flights at Schiphol Airport. For background: Schiphol has all but reached the cap of 500,000 flights per year, agreed on after negotiations between local residents and the aviation industry. There’s currently a heated debate on whether Schiphol should be allowed to grow further. Experts expect that maintaining the cap will result in more efficient use of the available slots (e.g. fewer short-distance flights, fewer low-cost flights, larger aircraft and fewer empty seats).

Creating a jagged baseline is a bit of a hassle: you have to remove the regular baseline, move the axis labels down a bit and create a new, jagged baseline.

And then there are some design issues. Having the baseline and the ‘regular’ chart lines look too similar may cause confusion. In fact, all of Andrews’ examples have very pronounced chart lines, which are clearly distinct from the baseline. If you prefer a more subtle approach, another solution is to use a light colour for the baseline.

Then again, it also matters whether there are gridlines. After some experimenting, I think the jagged baseline only works well with gridlines added; without them it looks a little weird. But see for yourself if you agree.

I’ve written a Python script to download and clean Schiphol Airport traffic data; find it on Github.

How to investigate assets: lessons from The Wire

I’m rewatching The Wire. It’s a great series anyhow, but for researchers, episode 9 of the first season (2002) is especially interesting. It features detective Lester Freamon instructing detectives Roland Pryzbylewski and Leander Sydnor how to investigate the assets of drug kingpin Avon Barksdale.

They use microfilm instead of the Internet. They don’t have databases like Orbis, Companyinfo or OpenCorporates, and they don’t seem to calculate social network metrics. Yet the general principles behind Freamon’s methodology still make perfect sense today:

Start with the nightclub that Barksdale owns. Look up Orlando’s, by address, you match it, and you see it’s owned by - who?

Turns out it’s owned by D & B Enterprises. Freamon tells Prez to take that information to the state office buildings on Preston Street.

Preston Street?

Corporate charter office.

Corporate who?

They have the paperwork on every corporation and LLC licensed to do business in the state. You look up D & B Enterprises on the computer. You’re going to get a little reel of microfilm. Pull the corporate charter papers that way. Write down every name you see. Corporate officers, shareholders or, more importantly, the resident agent on the filing who is usually a lawyer. While they use front names as corporate officers, they usually use the same lawyer to do the charter filing. Find that agent’s name, run it through the computer, find out what other corporations he’s done the filing for, and that way we find other front companies.

This is pretty much the same approach you’d take when investigating shady temp agencies: trace connections via (former) shareholders, board members, company addresses and related party transactions. And, of course, try to figure out where the profits go.

On that aspect, Freamon also has some wisdom to share:

And here’s the rub. You follow drugs, you get drug addicts and drug dealers. But you start to follow the money, and you don’t know where the fuck it’s gonna take you.

Delete Facebook

This is becoming a bit of a tradition: me writing about people who make a New Year’s resolution to quit Facebook. The story is simple: around the turn of the year, there’s a peak in people googling how to quit smoking, but there’s an even larger peak in people trying to figure out how to delete their Facebook account.

But this year, the story is a bit more complicated (and more interesting).

Google Trends data isn’t available yet for the last days of the year, so there’s no new peak in searches for “quit smoking” yet. Other than that, the yearly pattern is dwarfed by a huge peak in search volume for “delete Facebook” in the week starting on 18 March. What happened?

The Guardian has helpfully created an overview of Facebook-related incidents during 2018; I’ve added a few stories that also seemed relevant (for sources, see Method below; thanks to Vicki Boykis for the suggestion to annotate the Google Trends chart).

No surprise: the largest peak in “delete Facebook” searches happened a few days after the publication of the Cambridge Analytica story on 17 March. The news resulted in a veritable #deletefacebook campaign, although according to Mark Zuckerberg, «I don’t think we’ve seen a meaningful number of people act on that.»

Arwa Mahdawi has argued that deleting your Facebook account isn’t a bad New Year’s resolution, even though it probably won’t change how the company operates: «Facebook’s abuse of power isn’t a problem that we can solve as individuals. Technology giants must be regulated.»

So how much impact did the controversy have on Facebook? One way to try and answer this is to look at the share price.

The pattern for Facebook is rather interesting. The share price dropped after the publication of the Cambridge Analytica story, but quickly picked up again. But then it took a plunge on 25 July, resulting in ‘the biggest-ever one-day wipeout in U.S. stockmarket history’.

One possible interpretation is that investors initially thought the Cambridge Analytica story wasn’t going to harm Facebook’s profits. But when Facebook published its Q2 earnings report, they were shocked to learn that user growth had stalled.

But the chart also shows that all major tech companies saw their share prices go down. This suggests there’s more going on than users leaving Facebook. In addition to broader economic trends, a likely explanation is that investors fear more government regulation of major tech companies in response to the controversies they are involved in (and also to their dominant market position). While this may not be the whole story, it does seem to support Mahdawi’s view about the key role of regulation.


Note that Google Trends data should be interpreted with caution because Google doesn’t provide much detail on the methodology used to produce the data.

For periods longer than three months, only weekly data can be downloaded. For the 2018 chart I wanted daily data. As suggested here, I downloaded three-month batches with overlapping data and then used the overlapping dates to calculate a ratio to adjust the scales. Here’s the code:

import pandas as pd
import numpy as np
def stitch(df1, df2):
    df1.index =
    df2.index =
    overlapping = [d for d in if d in list(]
    ratios = [df1.loc[d, 'delete facebook'] /
              df2.loc[d, 'delete facebook']
              for d in overlapping]
    ratio = np.median(ratios)
    for var in ['delete facebook', 'quit smoking']:
        df2[var] *= ratio
    df = pd.concat([df1, df2[]])
    return df
df = dfs[0]
for df2 in dfs[1:]:
    df = stitch(df, df2)

I used this Guardian article as my main source on Facebook-related incidents in 2018. I added a few from other sources: in April, Facebook announced 87 million people had been affected by the Cambridge Analytica scandal. Subsequently, it announced that it would notify people who had been affected. Dutch comedian Arjen Lubach organised a Bye Bye Facebook event (reminiscent of the 2015 Facebook Farewell Party). In September, Pew found that one in four Americans had deleted the Facebook app from their phone; and later that month a Chinese hacker threatened to delete Mark Zuckerberg’s Facebook account.

Hoe vind je die open data

De website waar Amsterdam open data aanbiedt ( wordt niet zo goed bijgehouden, meldt Nico van Gog op Twitter. Terwijl Amsterdam in zijn coalitieakkoord juist onderstreept hoe belangrijk open en toegankelijke gegevens zijn.

Van Gog legt de vinger op een zere plek: veel links naar gegevenstabellen van OIS zijn gebroken. Het gaat om tabellen die vernieuwd zijn en die daardoor een nieuwe url hebben gekregen (op staan deze tabellen ook met gebroken link).

Vorig jaar heb ik de site van OIS gescraped en een lijst gemaakt met alle tabellen die ik kon vinden. Naar aanleiding van de tweet van Van Gog heb ik die lijst nu bijgewerkt. Het is niet ideaal, maar je kan hem met CTR-F / CMD-F relatief eenvoudig doorzoeken.

Een interessant aspect van is overigens dat deze site zowel op ambtenaren als op het algemene publiek is gericht. Dat heeft als praktisch nadeel dat je er links vindt naar informatie waar je niet bij kan (Kadaster, Kvk). Toch valt er wel iets voor te zeggen: als je vindt dat gegevens zoveel mogelijk openbaar moeten zijn, dan is het niet verkeerd dat burgers hetzelfde dataportaal gebruiken als ambtenaren.

Mocht de gemeente aanleiding zien om nog eens tegen het licht te houden, dan heb ik een bescheiden suggestie: publiceer de dataverzoeken die worden ingediend, en wat ermee gebeurt. Net als het Rijk.

UPDATE 18 november 2018 - Twee dagen nadat ik dit stuk op m’n blog had gezet bleek een student sociale geografie en planologie te zijn vastgelopen op het dataportaal van de gemeente:

Gezocht op City Data Amsterdam en google. Op City Data Amsterdam zou er een puntenfile van de ov-haltes gedownload kunnen worden. Echter wordt er een foutieve link aangeboden waardoor de bestanden niet te vinden zijn.

De achtergrond van het verzoek is wel interessant: de student wil de haltes voor en na 22 juli vergelijken - dat is de dag waarop de Noord-Zuidlijn ging rijden. Wellicht om te analyseren wat de gevolgen zijn voor de loopafstand naar de dichtstbijzijnde halte - en voor wie. Ben benieuwd.

UPDATE 23 november 2018 - Er wordt aan gewerkt.

UPDATE 1 februari 2019 - De urls op het dataplatform zijn veranderd: «De achtergrond hiervan is dat we beter leesbare en vindbare links gaan gebruiken. Ook hebben we meteen gezorgd dat links naar datasets niet meer op de titel gebaseerd zijn, zodat er ook geen aanleiding meer is om die links nog te wijzigen.»

Wie fietst er over de Dafne Schippersbrug

Als het goed is gaat maandag de Dafne Schippers fietsbrug in Utrecht weer open, na een korte onderhoudsbeurt. Ik heb een speciale vand met deze brug: hij opende op mijn eerste werkdag in Leidsche Rijn en sindsdien ligt hij op m’n favoriete route.

Wie gebruikt deze brug nog meer? Met de gebruikelijke slag om de arm kunnen gegevens van de Fietstelweek een beeld geven. De grafieken hieronder laten per rijrichting zien hoe laat fietsers de bruggen over het Amsterdam-Rijnkanaal gebruiken.

’s Ochtends is er een piek in het aantal fietsers dat van Leidsche Rijn (west) naar centrum (oost) fietst; rond 5 uur ’s middags een piek in de andere richting. Waarschijnlijk zijn de bruggen populair bij forensen uit Leidsche Rijn. Dat komt niet echt als een verrassing: als je tijdens de ochtendspits naar Leidsche Rijn fietst dan passeer je enorme aantallen fietsers die in tegengestelde richting fietsen.

Op de kaart hieronder zie je de routes van fietsers die de bruggen gebruiken. Van boven naar beneden gaat het om de Gele Brug (Hogeweidebrug), de Dafne Schippersbrug en de De Meernbrug.

Veel fietsers lijken de bruggen te gebruiken om naar een lokatie in de buurt van Utrecht CS te gaan. Gebruikers van de De Meernbrug en de Dafne Schippersbrug kiezen voor prettige routes die samenkomen bij de Leidseweg. Gebruikers van de Gele Brug gebruiken vaak de niet zo prettige route langs de Vleutenseweg of de iets betere route langs het spoor.

Uit onderzoek blijkt dat fietsers niet altijd voor de kortste route kiezen; de kwaliteit van de fietspaden speelt ook een rol.

Maar de kaart suggereert dat veel fietsers voor de kortste route kiezen, ook al is er een prettiger alternatief. Zo lijken weinig fietsers uit het noordelijke deel van Leidsche Rijn gebruik te maken van de Dafne Schippersbrug of van de route langs de Keulsekade (met die laatste route bespaar je jezelf lange wachttijden bij stoplichten).

Zie ook deze analyse van DUIC, die laat zien dat de brug niet alleen populair is bij fietsers maar ook bij hardlopers - terecht gezien de naam van de brug.