Introduction | Instructions | Examples | Footnotes | About

MLB Hall of Fame Voting Trajectories


Player Name:
NamePosYrsGWARBatting:AB RHHRRBISBBB BAOBPSLGOPS
- - - - - - - - - - - - - - - -
Pitching:WLERA WHIPGSSVIPHHRBBSO
- - - - - - - - - - -
- of - players selected.
Clear query.
Inducted by:
Position:
x:
y:
Show histograms (default stats, general stats, pitcher stats, batter stats):

Introduction

Baseball Hall of Fame voting can drive the average fan crazy. Year after year, great players fail to be voted in unanimously, mediocre players receive votes, and long-retired players experience wild swings in the percentage of voters who name them on their ballot, despite not having played an inning, thrown a pitch, or swung a bat during the previous five to twenty years. How can we explain this nonsense?

The answer is, for the most part, we can't. All a fan can do is accept that Baseball Hall of Fame voting, conducted by the Baseball Writers Association of America (BBWAA), is a phenomenon unto itself. If we can't understand baseball Hall of Fame voting, though, maybe the next best thing is visualizing the data behind it. The set of interactive plots on this webpage is our attempt to do that. We were especially interested in two things: (1) viewing the trajectories of BBWAA vote percentage by year for different players throughout history, and (2) simultaneously viewing the career statistics of these players, to help find patterns and explain their trajectories (or to reassure ourselves that the writers really are crazy).

The main figure above is a plot of BBWAA Hall of Fame voting by year for all 1,121 players who have appeared on the ballot since Hall of Fame voting began in 1936 [updated through the class of 2016]. The circular points represent each player's vote percentage in his final year on the BBWAA ballot, and the lines represent his vote percentage in prior years if he appeared on the ballot multiple times. Recall that a player needs to be listed on at least 75% of the ballots in a given year to be inducted. If he gets less than 5% of the votes he is removed from future ballots, and if his vote percentage is between 5% and 75%, he stays on the ballot for at least one more year, up to a maximum of 15 years. (See Baseball-reference.com for a full description of the BBWAA voting rules).

A number of additional interactive tools help you select subsets of players to view in the main plot, including (1) the "Player Name" search box, (2) the two legends to the right of the main plot that encode each player's method of induction and primary position, and (3) the histograms below the plot, which allow subsets of players to be selected by their career statistics. There is also a scatterplot with dropdown menus for each axis that allow users to explore the relationship between any two statistics. We hope the interactive tools are intuitive; full instructions for interacting with the plots are available below, including instructions for how to share the URL of a version of the visualization that you created. We also describe the raw data and software used for the plots, and a few interesting footnotes and examples.

We're interested in seeing what you find with this visualization. If you tweet about it, we'd love if you used the hashtag #hofvis.


Instructions

To browse the player voting trajectories, use the following:

As a general principle, clicking and brushing regions of the elements of this visualization will create queries which restrict the data in all elements of the visualization to lie within the selected region. For example, if you brush a region in the WAR histogram between values 50 and 100, and you select "SS" from the position legend, the other histograms and the main plot will be updated to reflect only the shortstops with career WAR between 50 and 100. When combined, these regions form logical intersections: we only show trajectories and histogram counts for players that satisfy all selection criteria.

Last but not least, the state of the visualization is encoded in the address bar. This means you can click back and forward like you would when navigating different webpages; if you like a particular state, you can copy the URL and share it over email, Facebook, Twitter, etc.


Examples

First, here are a few obvious selections, just for practice:

Here are a few more obscure sets of players:


Footnotes

Last, here are a few footnotes about the data and other random things we noticed while playing with and visualizing this data:

  1. Lou Gehrig and Roberto Clemente were elected via special elections in 1939 and 1973, respectively. The exact vote percentage for Gehrig is unknown; we chose to plot his 1939 data point at 100%, as if his election was unanimous.
  2. Three players (Charlie Gehringer, Luke Appling, and Red Ruffing) were elected via runoff elections in 1949, 1964, and 1967, respectively. These players didn't receive 75% of the vote on the main ballot that year, but were inducted because they were the highest vote getters in a subsequent runoff election (held the same year). This obviously doesn't happen anymore...
  3. Lefty Grove received 6 votes in 1960, despite the fact that he had already been inducted into the Hall of Fame 13 years earlier, appearing on 76.4% of the ballots that year! We removed his 1960 votes from the plot (and we suspect they were probably meant for Orval Grove, who received 7 votes that year, his last year on the ballot).
  4. Joe McCarthy is the only person who has received BBWAA votes despite the fact that, according to his Hall of Fame plaque, he never appeared in a single MLB game as a player.
  5. Before 1960, active players sometimes received votes, (such as Warren Spahn in 1958), and in general, players who made late-career comebacks after being retired for multiple years often have strange-looking trajectories (Minnie Minoso, and recently, Jose Rijo). We keep these data points in the plot. For a thorough description of BBWAA voting rules (maybe treated more like "guidelines" sometimes?), check out this nice page at baseball-reference.com.
  6. Modern BBWAA voting rules weren't in place until 1967. Before that time, players sometimes received less than 5% of the vote and still appeared on future ballots, for instance. Also, players occasionally appeared on the ballot more than the current maximum of 15 times. (Edd Roush holds the record with 19 appearances).
  7. 10 players in baseball history have had a career WAR below zero and received at least one Hall of Fame vote. Two of the most interesting players in this subset are Tommy Thevenow (SS, WAR = -6.7), who holds the record for most consecutive at-bats without a HR (3,347), and Eddie Miksis (2B, WAR = -5.0), whose "main claim to fame as a Cub" according to Wikipedia was "lending his glove to Ernie Banks in Banks' first-ever major league game." He certainly has at least one other claim to fame -- his appearance on one BBWAA member's 1964 Hall of Fame ballot.
  8. Note: Players elected by the Veteran's Committee (orange, purple, and pink points) still have their BBWAA voting trajectories pictured, so their year of election (by the Veteran's Committee) is not the same as the year of their last trajectory point. See the file player_data.csv for their actual year of induction.

About this visualization

If you're having trouble seeing it, try Google Chrome (we develop on Safari and Chrome).

This visualization was created by Carlos Scheidegger and Kenny Shirley, who got lots of feedback and ideas from Chris Volinsky. It uses d3, Crossfilter (specifically, Jason Davies's custom-filter branch in his fork, which supports arbitrary filters). The original exploratory visualizations were created in R, as were the CSV files used here. The javascript source here is minified, but you can fork the GitHub repo for all the gory details. We were inspired in part by two nice baseball-related visualizations of trajectories that appeared in the NY Times within the past couple of years.

The histogram rendering is a trivial change of the demonstration code in Crossfilter; the selectable legend was written from scratch (it is also trivial). The history management code was written on top of jQuery's param and jquery-bbq's deparam, although the code has more than a few hacks in it. Bizarrely, these two functions do not form a bijection: $.param is not an injection from JSON objects to strings. WAT. We also use Underscore.js.

The BBWAA ballot data and player career statistics were downloaded from baseball-reference.com. We gathered additional data regarding Veterans Committee elections, Negro Leagues elections, and some player position data from baseball-almanac.com and baseballhall.org.

Originally created January, 2013.
Last Updated June, 2020.