If you are looking at this it’s probably winter in California and hopefully snowy in the mountains. In the winter, snow is one of the primary ways that water is stored in California and is on the same order of magnitude as the amount of water in reservoirs.
When I made this graph of California snowpack levels (Jan 2023) we’ve had quite a bit of rain and snow so far and so I wanted to visualize how this year compares with historical levels for this time of year. This graph will provide a constantly updated way to keep tabs on the water content in the Sierra snowpack.
Snow water content is just what it sounds like. It is an estimate of the water content of the snow. Since snow can have be relatively dry or moist, and can be fluffy or compacted, measuring snow depth is not as accurate as measuring the amount of water in the snow. There are multiple ways of measuring the water content of snow, including pads under the snow that measure the weight of the overlying snow, sensors that use sound waves and weighing snow cores.
I used data for California snow water content totals from the California Department of Water Resources. Other California water-related visualizations include reservoir levels in the state as well.
There are three sets of stations (and a state average) that are tracked in the data and these plots:
Here is a map showing these three regions.
These stations are tracked because they provide important information about the state’s water supply (most of which originates from the Sierra Nevada Mountains). Winter and spring snowpack forms an important reservoir of water storage for the state as this melting snow will eventually flow into the state’s rivers and reservoirs to serve domestic and agricultural water needs.
The visualization consists of a graph that shows the range of historical values for snow water content as a function of the day of the year. This range is split into percentiles of snow, spreading out like a cone from the start of the water year (October 1) ramping up to the peak in April and then converging back to zero in summertime. You can see the current water year plotted on this in red to show how it compares to historical values.
My numbers may differ slightly from the numbers reported on the state’s website. The historical percentiles that I calculated are from 1970 until 2022 while I notice the state’s average is between 1990 and 2020.
You can hover (or click) on the graph to audit the data a little more clearly.
Sources and Tools
Data is downloaded from the California Data Exchange Center website of the California Department of Water Resources using a python script. The data is processed in javascript and visualized here using HTML, CSS and javascript and the open source Plotly javascript graphing library.
ScrabWordle is a game based on the hugely popular Wordle by Josh Wardle, where you try to solve a 5-letter puzzle. The Scrabble element of the game comes in where the point value of the target word is given based on the letter values in the game and is another helpful clue to help solve the puzzle.
I recently made WordGuessr and Tridle. So I’d already made the structure of the game and just needed to add the Scrabble elements. And it took me a little while to work out all the kinks and it also improved my CSS skills to get all the aspects of the look of the tiles correct.
If you know how to play Wordle, then the rules are the same:
1) the game reports the point value of the target word
2) just type in a guess and and press ‘Enter’, the score of your guess is updated in real time
3) the game will indicate how good your guess was. If any letter are in their correct position they will turn green, if they are correct but in the wrong place, they turn orange, and if they don’t show up in the word they turn black.
4) guess again, using the clues from the previous word
5) you can share your results with other folks or issue a challenge game
6) play all you want
The game is created using HTML, CSS and Javascript code to create interactivity and UI. Hope you enjoy it. I enjoy the extra element (word point values) to help me guess the word. Let me know in the comments how you like the new game play and if the difficulty levels are appropriate.
Over 9 Million games played! (January 2025).
Tridle is a game based on the hugely popular Wordle by Josh Wardle, where you try to solve three puzzles (Triple Wordle) at the same time. It is also modeled after Dordle and Quordle, but a little different (3 instead of 2 or 4!)
Shortly after I started playing Wordle in early January, I wanted to play more games so I decided to make a Wordle game so I could play as often as I wanted. I made WordGuessr in a day or so. It ended up being fairly popular and lots of people still play.
Recently, I started playing Dordle (where you solve two puzzles simultaneously), which adds an extra layer of challenge onto the Wordle game. I thought that a triple Wordle game would be a fun game to code up and since I’d already made the structure of the single game, how hard could making 3 be. Well, it took me another day or so to work out all the kinks and it was also stretched my CSS skills to get all the look correct with all the various permutations of the game and generating three boards simultaneously.
If you know how to play Wordle, then the rules are the same:
1) just type in a guess and and press ‘Enter’.
2) the game will indicate how good your guess was for each puzzle separately. If any letter are in their correct position they will turn green, if they are correct but in the wrong place, they turn orange, and if they don’t show up in the word they turn black.
3) guess again, using the clues from the previous word
4) repeat until you get each of the words correct or fail to figure them all out after 8 tries.
5) you can share your results with other folks
6) play all you want
The game is created using HTML, CSS and Javascript code to create interactivity and UI.
This visualization lets you divide the US into 1,2,3,4,5,8 and 10 different segments with equal population and across different dimensions. The divisions are made using counties as the building blocks (of which there are 3143 in the US). There are numerous different ways to make the divisions. This lets you make the divisions by different types of geographic directions and divisions by population density.
If you can think of other interesting ways to divide up the US, please let me know and I can try to add them to this visualization.
Sources and Tools:
2018 county population data is from US Census Bureau. The map visualization is created using the Leaflet javascript mapping library and the data wrangling and user interface and interactivity are created using HTML, CSS and Javascript code.
I added a share button (arrow button) that lets you send a graph with specific name. It copies a custom URL to your clipboard which you can paste into a message/tweet/email.
Use this visualization to explore statistics about names, specifically the popularity of different names throughout US history (1880 until 2020). This is a useful tool for seeing the rise (and fall) of popularity of names. Look at names that we think of as old-fashioned, and names that are more modern.
This visualization is not my original idea, but rather a re-creation of the Baby Name Voyager (from the Baby Name Wizard website) created by Laura Wattenberg. The original visualization disappeared (for some unknown reason) from the web, and I thought it was a shame that we should be deprived of such a fun resource.
It started about a week ago, when I saw on twitter that the Baby Name Wizard website was gone. Here’s the blog post from Laura. I hadn’t used it in probably a decade, but it flashed me back to many years ago well before I got into web programming and dataviz and I remember seeing the Baby Name Voyager and thinking how amazing it was that someone could even make such a thing. Everyone I knew played with it quite a bit when it first came out. It got me thinking that it should still be around and that I could probably make it now with my programming skills and how cool that would be.
So I downloaded the frequency data for Baby Names from the US Social Security Administration and set to work trying to create a stacked area graph of baby names vs time. I started with my go to library for fast dataviz (Plotly.js) but eventually ended up creating the visualization in d3.js which is harder for me, but made it very responsive. I’m not an expert in d3, but know enough that using some similar examples and with lots of googling and stack overflow, I could create what I wanted.
I emailed Laura after creating a sample version, just to make sure it was okay to re-create it as a tribute to the Baby Name Wizard / Voyager and got the okay from her.
Some info about Data (from SSA Baby Names Website):
All names are from Social Security card applications for births that occurred in the United States after 1879. Note that many people born before 1937 never applied for a Social Security card, so their names are not included in our data.
Name data are tabulated from the “First Name” field of the Social Security Card Application. Hyphens and spaces are removed, thus Julie-Anne, Julie Anne, and Julieanne will be counted as a single entry.
Name data are not edited. For example, the sex associated with a name may be incorrect.Different spellings of similar names are not combined. For example, the names Caitlin, Caitlyn, Kaitlin, Kaitlyn, Kaitlynn, Katelyn, and Katelynn are considered separate names and each has its own rank.
All data are from a 100% sample of our records on Social Security card applications as of March 2021.
I did notice that there was a significant under-representation of male names in the early data (before 1910) relative to female names. In the normalized data, I set the data for each sex to 500,000 male and 500,000 female births per million total births, instead of the actual data which shows approximately double the number of female names than male names. Not sure why females would have higher rates of social security applications in the early 20th century. Update: A helpful Redditor pointed me to this blog post which explains some of the wonkiness of the early data. The gist of it is that Social Security cards and numbers weren’t really a thing until 1935. Thus the names of births in 1880 are actually 55 year olds who applied for Social Security numbers and since they weren’t mandatory, they don’t include everyone. My correction basically makes the assumption that this data is actually a survey and we got uneven samples from males and female respondents. It’s not perfect (like the later data) but it’s a decent representation of name distribution.
Sources and Tools:
The biggest source of inspiration was of course, Laura Wattenberg’s original Baby Name Explorer.
I downloaded the baby names from the Social Security website. Thanks to Michael W. Shackleford at the SSA for starting their name data reporting. I used a python script to parse and organize the historical data into the proper format my javascript. The visualization is created using HTML, CSS and Javascript code (and the d3.js visualization library) to create interactivity and UI. Curran Kelleher’s area label d3 javascript library was a huge help for adding the names to the graph.
Over 20 Million games played! (Oct 2024).
You can do your Wordle practice training here with unlimited attempts.
As my wife likes to say, “Practice makes ‘Pretty Good'”.
I made this Wordle clone in about a day after playing with Wordle for a few days. My wife and I were pretty hooked and I wanted to play more than once a day. It’s like a word version of Mastermind. I also thought it would be fun with words of different lengths, so I added the option for words between 3-7 letters long. Depending on the number of letters, the game feels very different. 3 letters is very short and it’s easier in some respects but you have to guess more. Longer words require much more thinking.
The rules of the game are pretty simple:
1) just type in a guess and and press ‘Enter’.
2) the game will indicate how good your guess was. If any letter are in their correct position they will turn green, if they are correct but in the wrong place, they turn orange, and if they don’t show up in the word they turn black.
3) guess again, using the clues from the previous word
4) repeat until you get the word correct or fail to figure it out after 6 tries.
I added the ability to create a challenge game that allows you to share a link (with a unique code) which will enable anyone with the link to play the same word.
Apparently, my site is unblocked on education websites (which makes sense since it has a lot of educational content), so I seem to be getting lots of traffic from Chromebooks searching for “Wordle Unblocked”.
You can also share your guessing results (not the answer) with a grid of boxes, like the original Wordle, as shown below:
WordGuessr Challenge
(5 letter) 4/6
๐ฉโฌโฌโฌ๐ง
๐ฉ๐ง๐งโฌโฌ
๐ฉ๐ฉ๐ฉโฌ๐ง
๐ฉ๐ฉ๐ฉ๐ฉ๐ฉ
Try the same exact puzzle here:
https://engaging-data.com/wordguessr-wordle/?challenge=uab5
I also added the game stats which should persist across games and lets you look at stats for games of different word lengths individually as well as all your games.
I wasn’t sure what how the original Wordle game handles duplicate letters so I made up my own set of rules for how it would happen. First, if there are multiple instances of a single letter (e.g. two ‘E’s in a word) and you make a guess of a word with two ‘E’. If one is in the correct spot and one is in the wrong spot, one will be green and the other orange. If both are in the wrong spot, they will both be orange. If there is only one ‘E’ in the answer but you guess two, one will be black and the other will be green or orange depending on its position.
Sources and Tools:
Obviously a big shout out to Josh Wardle and his Wordle game, as this is mostly a carbon copy of his game with a few additions.
I downloaded the most common words in English from the English Lexicon Project Web Site at Washington University in St. Louis. Then I processed these to remove foreign language words and other strange entries and split them into groups of words by number of letters using Python.
The game is created using HTML, CSS and Javascript code to create interactivity and UI. Thanks to my wife and daughter for beta-testing, lots of fun beta testing.
Recent Comments