This app lets you search for baby names and view their popularity trends over the past 134 years. In addition, it shows alternative spellings and other names that sound like your search. The "sounds like" results are based on Double Metaphone and the "trends like" results are based on Euclidean distance (i.e., between the distributions).
The original babynames data is maintained by the US Social Security Administration. For each year since 1880, they provide a plain text file in this format:
yob2011.txt | yob2012.txt | yob2013.txt |
---|---|---|
Sophia,F,21799 Isabella,F,19850 Emma,F,18761 ... |
Sophia,F,22245 Emma,F,20871 Isabella,F,19026 ... |
Sophia,F,21075 Emma,F,20788 Olivia,F,18256 ... |
In order to visualize the data, I wrote a Python script to combine the individual text files into a single JavaScript object. For each name, I store how many times it occurs in each year:
f_counts = { ... 'Sophia': [..., 21799, 22245, 21075], ... }; |
Using this format, I wrote a JavaScript function to draw a bar chart in an HTML5 canvas. The x-axis ranges from 1880 to 2013 (year of birth) and the y-axis ranges from 0% to 0.3% (percent of births with that gender). Darker colors indicate higher percent values for the more popular names.
Here are the top 10 names for 2013 (see also Popular Baby Names on the SSA website). Hover your mouse over the charts for more details.
The original data consists of 102,690 names given to 333,417,770 people. For performance reasons, my app only includes names with at least 5,000 occurrences over time. Interestingly, this subset represents 92.3% of the population but only 3.58% of the names.
Male | Female | Total | |
---|---|---|---|
Total People |
168,137,041 | 165,280,729 | 333,417,770 |
Total Names |
38,601 | 64,089 | 102,690 |
Included People |
158,153,848 94.1% |
149,740,917 90.6% |
307,894,765 92.3% |
Included Names |
1,486 3.85% |
2,187 3.41% |
3,673 3.58% |
Copyright © 2014 Chris Mayfield. Software released under the MIT license.