Remaking classic hand drawn data visualizations from 1900


Hey folks,

I’m at the end of a day after I pulled an all-nighter trying to hit a grant proposal deadline. I don’t recall ever doing this in college. I seem to pull an all-nighter every five years or so. I’m too old for this! Anyway, the proposal is in and now I’m ready to move on to fun things… like talking to you about visualizing data!


A few years back Whitney Battle-Baptiste and Britt Rusert put together an amazing collection of visualizations by WEB DuBois that he presented at the 1900 Paris Exposition. The book is called “W.E.B. Du Bois’s Data Portraits: Visualizing Black America”. It’s probably the most enlightening $20 you’ll spend. You can find the originals here at the Library of Congresses website.If you aren’t convinced, I’d encourage you to check out this video on the collection and an effort to recreate the figures using modern tools. I think this is the slide deck. Here’s the GitHub repository of Anthony Starks’s effort to recreate the visuals using a tool called mkdeck. Ok, that’s enough background for now :)

You might look at the visuals and think… whaaa? But really, spend some time with them and learn about them. One of the things that impresses me about this collection of visuals is that they were hand made. No R. No Python. No Excel. No Tableau. No fancy d3.js package. The artistry of these images and the unconventional approach to visualizing data adds an intriguing layer to the story DuBois was telling his French audience about the plight of African Americans in the US in 1900. Consider this figure, which is plate 12 from the collection.

If you’re like me, it might have taken you a minute to wrap your head around this simple, but profound figure. The plot shows that between 0.7 and 1.7% of African Americans living in the US from 1790 to 1860 were free - the rest were enslaved. By 1870 they were all freed. I like how the red representing the free individuals overtakes the darkness of slavery. Perhaps we could read more into the symbolism, but I’ll hold off for now. Let’s think about how we might make this in R!

First, this is an area plot. Also, it appears to have a white line separating the black and red areas. We could likely generate the basics of the plot using the geom_area() and geom_line() functions with the year on the y-axis and the percent free on the x-axis. I don’t recall using geom_area() before so it might take some tinkering to get it to look right.

Second, I notice that the left side of the x-axis is not so much broken as “ripped”. Doing some digging into geom_area(), I see that there’s an orientation argument for geom_area() that will allow us to adjust the orientation of the plot if we set it to "y". This basically does the same thing that coord_flip() accomplishes. To get the ripped appearance, I’d likely create the upper boundary on the free data to be randomly drawn from a value between 2.8 and 3.2. If I multiply the percent free values by -1 the ragged side should appear on the left.

Third, I notice the x-axis labels are at the top of the plot from 3% on the left to 0% on the right. We saw in a recent video that scale_x_continuous() allows us to put the axis text on the top edge of the plot.

Fourth, the years are listed on the left y-axis and the “Percent of free negroes” is listed on the right axis. I can think of two ways to do this. First, the years can be included using scale_y_continuous(). I suspect that the default ordering would put 1790 at the bottom, so we’ll likely need to reverse the order of the data to put it at the top. To draw the horizontal gridlines, we’ll likely need to use geom_hline() since the lines are on top of the data. Now for the percent free, we could either engineer a second y-axis, which I’ve shown previously or we could place the text in the right-hand margin using annotate(geom = "text"). Which approach do you prefer?

Finally, the Anthony Starks developed a DuBois-ian style guide. If you download that pdf and look at the end you’ll find a set of suggested fonts and hex codes for the colors that DuBois used. DuBois of course used his own hand to write the text in this figure, but a special DU BOIS font has been created by Vocal Type. It’s a bit pricey to download a desktop version of the font, but maybe they won’t mind me using the trial version to make some figures for you all? Alternatively, google fonts doesn’t have a good match, but perhaps “Roboto Mono” would be ok.

Try you hands at generating this figure on your own in R. If you’re feeling adventurous and want to represent the same data differently, check out Panel 51. Here’s some data…


library(tidyverse)

slave_free <- tribble(
~Year,~Slave,~Free,
1790,98.7,1.3,
1800,98.3,1.7,
1810,98.3,1.7,
1820,98.8,1.2,
1830,99.2,0.8,
1840,99.1,0.9,
1850,99.3,0.7,
1860,99.2,0.8,
1870,0,100
)

Workshops

I'm pleased to be able to offer you one of three recent workshops! With each you'll get access to 18 hours of video content, my code, and other materials. Click the buttons below to learn more

In case you missed it…

Here is a livestream that I published this week that relate to previous content from these newsletters. Enjoy!

video previewvideo preview

Finally, if you would like to support the Riffomonas project financially, please consider becoming a patron through Patreon! There are multiple tiers and fun gifts for each. By no means do I expect people to become patrons, but if you need to be asked, there you go :)

I’ll talk to you more next week!

Pat

Riffomonas Professional Development

Read more from Riffomonas Professional Development

Hey folks, What a year! This will be the last newsletter of 2025 and so it’s a natural break point to think back on the year and to look forward to the next. Some highlights for me have been recreating a number of panels from the collection of WEB DuBois visualizations on YouTube, recreating plots from the popular media, and modifying and recreating figures from the scientific literature. I guess you could say 2025 was a year of “recreating”! I have found this approach to making...

Hey folks, As 2025 is winding down, I want to encourage you to think about your goals for 2026! For many people designing an effective visualization and then implementing it with the tool of their choice is too much to take on at once. I think this is why many researchers recycle approaches that they see in the literature or that their mentors insist they use. Of course, this perpetuates problematic design practices. What if you could break out of these practices? What if you could tell your...

Hey folks, Did you miss me last week? Friday was the day after the US Thanksgiving holiday and I just couldn’t get everything done that I needed to. The result was an extra livestream on the figure I shared in the previous newsletter. If you haven’t had a chance to watch the three videos (one critique, a livestream, and another livestream) from that figure, I really encourage you to. In the first livestream I made an effort to simplify the panels as a set of facets. Towards the end a viewer...