One Chart A Day, For 30 Days

My Experience Doing The #30DayChartChallenge In 2024

Shri Khalpada

Shri Khalpada

A grid of 30 visualizations created for the #30DayChartChallenge.

Some time in March, I heard about the #30DayChartChallenge. It's a community challenge with a simple premise: create a visualization based on a given theme every day in April. It seemed like a fun way to push myself creatively and learn, so I decided to give it a try.

I gave myself a few constraints for the challenge to (1) help give all the visualizations some cohesion and (2) limit some of the decision-making I'd have to do each day:

  • Make each visualization a square so that they'd fit neatly in a grid at the end.
  • Use the same general template for each visualization. From top to bottom: a title, a subtitle, the visualization, and a footer that cites the data source.
  • Use the same font in each visualization. I chose Courier New.
  • Spend no more than an hour on each visualization.
    • I definitely went over an hour on a lot of them.
    • I tended to do a few charts at once every couple of days instead of making one every day.
  • Use p5.js for each visualization.
    • I've really enjoyed using p5.js for some of the visualizations on PerThirtySix and some of my personal projects. It's relatively high-level as far as graphics on the web go (drawing and styling a shape is usually as simple as a few lines of code), but quite low-level as far as visualizations go (you have to draw and style each shape).
    • To that end, coming up with chunks of code I could reuse for different days was key, as was leaning heavily on AI tools like ChatGPT and Copilot to help. I found these tools especially helpful for code involving positioning, which got to be a bit complex for some of my pieces.

Beyond that, I tried to be creative with each visualization.

Feel free to reach out on Twitter or LinkedIn if you have any questions about the code! It's generally very messy because I just wanted to get these visualizations done, but I'd be happy to clean some of it up and share.

Here they are!

Day 1 (Part-to-whole)

Four pie charts under the title "The General Public vs. Congress," comparing the percentage of non-white, women, Gen X or Millennials, and non-Christians in the general U.S. population to their representation in Congress. For the first challenge, I wanted to use a dataset that was ready to visualize without much extra work. I originally planned to just use the first quadrant around race to show Congress' representational shortcomings, but found additional data points that drove home the point.

Day 2 (Neo)

A map titled "The Farmers Markets Of D.C." showing the locations of farmers' markets across Washington D.C., with weekend markets in purple and weekday markets in green. Being from and living in DC, I love playing around with data from Open Data DC.

I have some code from a project I did a while ago that visualizes DC road data, and decided to build on top of that to visualize data around farmer's market locations in the city.

There's a neat effect here, where each road is colored based on whether it's close to a market.

Day 3 (Makeover)

A visual titled "The Top 1% And The Bottom 99%," with small stick figure icons representing the distribution of global wealth, highlighting the disparity between the top 1% and the rest. This is a riff on PerThirtySix's piece on wealth inequality.

Using simple constructs like stick figures and space, in my opinion, is an underrated way to represent data that shows distribution of resources like wealth. It just feels more humanizing than encoding human lives as a few pixels of width on a bar chart.

Day 4 (Waffle)

A grid representation titled "How Good Are We At Being Random?" showing that the number 7 was chosen disproportionately more often than other numbers when people were asked to pick a random number between 1 and 10. The data for this came from an interesting thread on Reddit. There's a really interesting video on YouTube by Veritasium on the topic as well.

Day 5 (Diverging)

A temperature anomaly bar chart from 1873 to 2023 titled "150 Years Of Warming," showing the changes in global temperatures over time, with cooler years in blue and warmer years in red. Climate data seemed like a natural choice for the theme, and I was pretty familiar with this dataset from PerThirtySix's piece on climate change.

Day 6 (OECD Data)

A bar chart titled "Australia Leads In Organic Agriculture," illustrating the percentage of the world's organic farmland by country, with Australia having the largest share. I had never worked with OECD data before, so this took quite a bit of clicking around on their website until I found an interesting dataset on agricultural land. This was the first really surprising thing I learned doing the challenge; I genuinely had no idea Australia was so advanced in organic agriculture!

Day 7 (Hazards)

An infographic titled "How Cyber-Attacks Happen," with two large percentages, 74% and 26%, and text explaining that the majority of cyber-attacks involve a human element like social engineering. For this one, I found a dataset from Verizon analyzing cybersecurity breaches. I decided to go with a stylized column chart for this one, which was much simpler to implement than some of the last few days but hopefully just as effective.

Day 8 (Circular)

A circular bar graph titled "The Time I Spent In Coffee Shops In 2023," with different colored bars representing hours spent in coffee shops throughout the year and shaded sections indicating weekends. I was traveling for the solar eclipse this day, so I knew I wouldn't have a lot of time for this challenge. I had an old visualization showing my time spent in coffee shops in 2022, so I fed it a new year's worth of data from my Google Timeline to get a new chart for 2023.

I love how clearly it shows the point late in the summer where I decided to try to have a more regular morning-based schedule.

Here's last year's version, which I find slightly prettier but more chaotic:


Day 9 (Major/Minor)

A scatter plot titled "Visualizing Sufjan Stevens' 'Illinois'" showing a comparison between the length of song titles and song lengths, with a color background representing the album cover. Anyone that knows me knows that I love the music of Sufjan Stevens.

Day 10 (Physical)

An artistic map titled "From Mint to Monument," with coins placed on key locations on a map of Washington D.C., alongside cherry blossoms. This one was fun! We printed a generated image of DC road data (the same data that powered Day 2's visualization), and made an afternoon out of painting, crafting, and trying different ideas out.

Day 11 (Mobile-Friendly)

A curved line chart titled "To A Friendlier Mobile World" correlating hours of social media use with the increased risk of depression in adolescents, urging for safer digital spaces.

Since I was locked into making all my visualizations squares, I wasn't really sure what to do for the "mobile-friendly" theme. I decided to go for irony and think about how our modern mobile experience can feel un-friendly.

The end result is a pretty abstract visualization, where a circle representing risk gets larger as usage increases and starts to spiral downward.

Day 12 (Theme Day: Reuters Graphics)

A color block diagram titled "Deconstructing A Color Palette" showing the breakdown of red, green, and blue components for each color in Reuters' style guide. I genuinely had no idea what to do for this one. I eventually found a Reuters style guide, and thought it'd be kind of cool to deconstruct the red, green, and blue components of the colors. This one is less of a traditional data visualization and more of me just having fun experimenting.

Day 13 (Family)

An infographic titled "How Pets Fit Into Our Lives" with a silhouette of a cat and annotations indicating that 97% of American pet owners consider their pet to be part of the family. This is another one built on top of data from Pew Research, and probably the only one approved by Dorrie.

Day 14 (Heatmap)

A set of heatmaps titled "Caitlin Clark's Dominance Over Time" showing the frequency of certain statlines for basketball player Caitlin Clark over multiple seasons. This felt especially topical the day before the WNBA draft!

Day 15 (Historical)

A set of population distribution graphs titled "The Changing U.S. Population" showing shifts in age demographics over time with median ages indicated for both men and women in the U.S. for selected years. This was a cool dataset to play around with. It's interesting to think that my current age (31) would be above the median just 50 years ago.

Day 16 (Weather)

An illustration titled "The Rainiest U.S. Cities" depicting rainfall with rain clouds and blue droplets indicating the number of annual rainy days for various cities. I was proud of the visual metaphor on this one!

Day 17 (Networks)

A complex network diagram titled "Visualizing Possible Wordle Solutions" displaying potential letter combinations across multiple columns, interconnected by lines to show progression of guesses. I didn't have a ton of time this day, so I tweaked some old code a bit and called it a day. That old code is what powers PerThirtySix's interactive Wordle Solver today!

Day 18 (Asian Development Bank Data)

A series of scatter plots titled "Development and Internet Usage In Asia" with four charts representing different years, plotting the Human Development Index against internet usage per 100 people for various Asian countries. It would be interesting to find a story with this data, maybe around a specific country or a government program promoting digital accessibility that was especially effective.

Day 19 (Dinosaurs)

A scatter plot titled "Most Dinosaurs Were Likely Herbivores" with dots of varying sizes representing different dinosaur species, where green dots are herbivores and red dots are carnivores. I knew that many dinosaurs were herbivores, but I didn't realize it was such a clear majority at around 65%!

Day 20 (Correlation)

A line graph titled "Relative Search Popularity For 'Roman Numerals' Over Time" showing spikes in searches corresponding to recent Super Bowl events, annotated with specific Super Bowl designations in Roman numerals. This remains one of my all-time favorite correlations.

Day 21 (Green Energy)

An infographic titled "How Much Energy Does A Wind Turbine Generate?" depicting a wind turbine and a large grid of squares, with each square representing the energy consumption equivalent of 100 refrigerators. The average turbine can power 14,000 refrigerators. I find it hard to contextualize data around energy at any scale beyond my day-to-day usage. I found an FAQ page on USGS' website that helped contextualize wind energy, and that inspired this idea.

Day 22 (Mobility)

A bar graph titled "Who's Working Remotely In The U.S.?" showing percentages of remote, partial remote, and in-person work across various white-collar industries. There were a lot of interesting statistics about American remote work in this piece by USA Today.

Day 23 (Tiles)

A map visualization titled "Which States Got Excited For Record Store Day?" using Google Search Data, with circles of varying shades indicating search volume by state. This one was fun to make! Some of the design decisions were somewhat tricky, like how to show state labels without making the visualization too cluttered.

Day 24 (ILO Region For Africa)

A line graph titled "Women In Managerial Positions In Africa" showing the increasing trend of women in managerial roles, with lines representing different income brackets of African countries and the world average. This is another one where I think it'd be fascinating to dive deeper into the data. I'd love to understand what drives these trends!

Day 25 (Global Change)

A line graph titled "Global Access To Safely Managed Drinking Water" with faded lines for individual countries and bold lines showing the trend for the world and Sub-Saharan Africa. This is a sobering dataset. I had an intuitive sense that safe water is much less accessible in Africa, but visualizing the data really showed me the degree to which it remains a problem.

Day 26 (AI)

A horizontal bar chart titled "20 Famous Al's" showing the lifespans of notable individuals named Al, with each bar's length corresponding to the duration of their life. The theme for this day was AI, but I've been feeling a little AI'd out so I thought it'd be fun to make a visualization about Al's instead.

Day 27 (Good/Bad)

A heat map titled "Visualizing COMMUNITY Using IMDB Ratings" displaying a color-coded grid for each episode of six seasons, with colors representing the rating scale from 7.0 to 9.0. An ode to my favorite comfort show. #6SeasonsAndAMovie

Day 28 (Trend)

A slope chart showing temperature changes in the contiguous United States across all 4 seasons between 1900 and 2020. This is based on an interesting piece I found from the EPA. I'm pretty pleased with the hybrid approach of using line charts for the individual data points and a slope chart for the overall trend line.

Day 29 (Black'n'white)

A heatmap showing that we've found thousands of exoplanets in recent years using the 'Transit Method', which involves decreases in observed light from a star as a planet passes in front of it This was a very cool dataset to play around with.

Day 30 (Theme Day: FiveThirtyEight)

A chart showing Magnus Carlsen's sustained dominance in chess Once again, I had no idea what to do for the "Theme Day"! I've seen some FiveThirtyEight charts that do cool things around combining chart types and using lots of annotations, so I went for that here. I think it's a little confusing that the line represents one player over time and the circles represent different players at the same time, but hopefully it's not too unclear.

Very exciting to see the next generation of chess players starting to rise up!

Final Thoughts

And that's that! Shoutout to you if you're still reading this.

Overall, this challenge really pushed me to be consistent and creative. I found that it got progressively harder as the weeks went on, which probably isn't too surprising.

I'm proud of my output and learned a lot in terms of general visualization practices, some tool-specific quirks, and how to get the most out of the human + AI combination.

We're just getting started.

Subscribe for more thoughtful, data-driven explorations.