My Thoughts on Bump Charts and When to Use Them

Bump charts have a relatively simple purpose—they are used to visualize changes in rank over time. Here’s an example from Tim Brock’s Datato Display blog.

These charts are fairly similar to line charts, but instead of graphing some measure on the y-axis, such as Actual Carbon Dioxide Emissions, they show the rank. When a line crosses another line, that is indicative of a change in rank. Pretty simple, right?

Bump charts have been around for a while, but recently there seems to have been increased interest in these charts. I would at least partially credit Matt Chambers for this increased popularity due to his incredible “Car Color Evolution” visualization, shown below:

The visualization has received hundreds of thousands of views on Tableau Public and was nominated for 2016 Viz of the Year. What’s great about the visualization is how easily you can see the ranks of each color over time. Of course, that’s exactly the purpose of a bump chart. You can see the full visualization here and can read his blog about it here.

After Matt’s chart gained some interest in the community, Rody Zakovich decided to add a little flair to it. If you follow any of Rody’s work, you’ll know that he loves curves. So, he replaced the straight lines connecting each dot with sigmoid curves, as shown below:

You can see the full visualization here and can read his blog about it here.

I’ve seen a number of different bump chart implementations, but none that caught my eye quite like what Matt and Rody created. These guys are seriously amazing. I’m a huge fan of their work and have learned a lot from them. So, I really wanted to use  their bump chart in my own visualization. I decided to use world GDP rankings from the USDA Economic Research Service. With help from the blog posts, I was able to create what I think is quite a nice chart (you can see the full visualization here).

All in all, I was pretty happy with the results, but bump charts do have one flaw. With this data set in particular, showing rank alone can be a bit deceptive. The chart gives you the feeling that the difference between each country is pretty much the same (since the lines widths and the distance between them are the same). There is no indication, for example, that the difference between India (# 7) and Brazil (# 8) is only $39 Billion, while the difference between the United States (# 1) and China (# 2) is almost $8 Trillion! This seemed like a pretty major drawback to me, so I wanted some way to show both the actual GDP of each country and the differences between them.

Area Bump Chart
This reminded me of the web-based visualization tool, Raw (designed by Density Design Lab using the D3.js library). If my memory served, I thought that their bump chart might address this problem. Sure enough, their version of a bump chart shows both magnitude and rank. Here’s an example with the same GDP data I worked with in Tableau:

Not bad. We can see the rank as well as actual GDP and the relative size of the GDP compared to other countries. It’s now much clearer, for example, that India and Brazil have a very similar GDP and that the United States’ GDP is almost twice that of China.

But…I still have some problems with this visualization. In its effort to show magnitude, it sacrifices its ability to clearly show rank. It's not terribly difficult to see the rank with this particular visualization because the data is relatively simple. But, if there were more movement in the rankings, then it would be much more difficult to understand the rank of each country. And, after all, isn’t that the primary purpose of a bump chart anyway? Without a clear idea of the rank for each year, there is little reason for a bump chart at all—why not just use an area chart?

My Attempt at a Solution
So, where do we go from here? Well, I figured I’d go back to Tableau and try to make some attempt at a solution. I noticed that there was a lot of empty space, which could be used to show additional information. So, I decided to size each line by the actual GDP, which would give us three additional pieces of information:
  • Actual GDP for any country for any given year.
  • Relative change in GDP over time.
  • Difference in GDP relative to other countries.

Here’s the result:

Okay, I’ll be the first to admit that it’s not perfect. There’s still a lot of wasted space (perhaps this could be addressed by shortening the distance between each tick on the y-axis for lower ranks) and it’s still somewhat difficult to see the differences in the lower ranked countries, but it does clearly show the rank (again, the main purpose of a bump chart) and it's able to show the actual GDP and their relation to each other. All in all, I think it works pretty well.

When To Use a Bump Chart
So, when should we use bump charts? Ultimately, I think it comes down to your primary motivation—are you more interested in communicating the changing ranks amongst your dimensions or in showing the actual magnitude of each and how they relate to each other? If rank is the only thing of importance (think college football rankings where there is really no magnitude to show at all) then definitely use a bump chart. In this case, there is no better option. But if actual and relative magnitudes are most important, then you’d be better off with another type of visualization, such as a simple area chart. But what about a situation where both are important? Well, maybe something like my “sized bump chart” might help to address that need.

If you have any thoughts on bump charts or know of any better way to show both rank and magnitude, then please let me know in the comments.

Note: My final GDP visualization actually shows GDP (in 2010 Dollars) from 1980 to 2030, where 2016-2030 are based on Projections. Below is a screenshot and I encourage you to check out the full visualization here.

Ken Flerlage, January 23, 2017


  1. Man, I can't throw a rock without hitting a Ken Flerlage chart!! LOL!! Great blog Ken!!

    - Daniel M.

  2. I want to show same ranked entities. What would be the best way Ken?

  3. I always curious to know more about how we can enhance our skill, how we can improve our portfolio to add some attractive certificate. I got some valuable points through this blog.

  4. Ni! Thanks for this post, I was trying to figure out a way to make an area rank chart that doesn't look like spaghetti and I really liked your solution. It was easy enough to implement with Bokeh, so now I can add some interactivity as well. (: Cheers!

  5. Actually, it's a Bumps Chart, with an 's'. They were invented to show the positions of boats in the Cambridge Bumps - see for example

    1. That's super interesting. I did not know that.


Powered by Blogger.