Every time I would like inspiration for efficient visualizations, I browse The Economist, the Visual Capitalist, or The Washington Post. Throughout one in every of these forays, I ran throughout an attention-grabbing infographic — much like the one proven above — that plotted the age of every member of the US Congress towards their generational cohort.
My first impression was that this was a horizontal bar chart, however nearer inspection revealed that every bar was composed of a number of markers, making it a scatter plot. Every marker represented one member of Congress.
On this Fast Success Knowledge Science undertaking, we’ll recreate this enticing chart utilizing Python, pandas, and seaborn. Alongside the way in which, we’ll unlock a cornucopia of marker varieties chances are you’ll not know exist.
As a result of america has Age of Candidacy legal guidelines, the birthdays of members of Congress are a part of the general public document. You will discover them in a number of locations, together with the Biographical Directory of the United States Congress and Wikipedia.
For comfort, I’ve already compiled a CSV file of the names of the present members of Congress, together with their birthdays, department of presidency, and social gathering, and saved it on this Gist.
The next code was written in Jupyter Lab and is described by cell.
from collections import defaultdict # For counting members by age.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import patches # For drawing bins on the plot.
import pandas as pd
import seaborn as sns
Assigning Constants for the Generational Knowledge
We’ll annotate the plot in order that generational cohorts, resembling Child Boomers and Gen X, are highlighted. The next code calculates the present age spans for every cohort and contains lists for era names and spotlight colours. As a result of we need to deal with these lists as constants, we’ll capitalize the names and use an underscore as a prefix.
# Put together generational information for plotting as bins on chart:
CURRENT_YEAR = 2023…