Yan Holtz logo ← All issues
Dataviz Universe

Timeseries + variation

This week, one of my LinkedIn posts gained some traction.

It turns out that most people still default to simple line charts when visualizing temporal data.
Line charts are great. But, there are many other alternatives that can bring out more insights depending on your data!

So, let's go through a few alternatives you can consider the next time you're working with temporal data:

1. Streamgraph

Less accurate, but it creates organic, beautiful shapes that are truly eye-catching.

Use it if there's an obvious story in your data. Streamgraphs can make patterns stand out visually, but they are not the most accurate so they won't work for small variations!

Streamgraph example

Example by Cédric Scherer. Link in R / Python

2. Heatmap

Super useful when you have many series to compare.

If you have more than ~7 groups, line charts become unreadable (often called "spaghetti charts").

The heat map can be a great alternative as each group goes on its line.

Sort your series to group similar patterns together. It's a powerful way to see patterns across different dimensions.

Heatmap example

The vaccination heat map is the most famous example!

3. Candlestick

For financial data, candlestick charts are the go-to. They offer a more detailed look into the market trends over time.

They display the open, high, low, and close prices of a financial asset over a specified time period, with each "candlestick" representing one period of data.

In R, I would go for the dygraphs package to build them:

Candlestick chart example

Just a few lines of R code!

4. Small Multiples

A great alternative to line charts when you're working with more than five series that might turn into a spaghetti mess.

It divides the data into smaller, manageable parts while keeping the overall picture intact.

In my opinion this is one of the most powerful, under-used dataviz technique. In Matplotlib Journey we even dedicated a full lesson about it!

Small multiples example

R code available here

5. Stacked Area Chart

If you're more interested in showing the total value of multiple series, a stacked area chart is a strong choice.

This chart style helps illustrate how different parts contribute to the whole over time.

Be careful though. It is very hard to read the evolution of each group individually as they do not have a common baseline!

Stacked area chart example

R code, Python code

6. Bump Chart

Best used when you're focused on the evolution of ranks or positions.

Use it if ranking is key: bump charts make it easy to follow the movement of items within a ranked list over time.

Bump chart example

R code

7. Area Chart

A simple upgrade from a line chart when you have a single series, and the Y-axis starts at zero.

A line chart with just 1 line feels a bit empty. Use an area chart instead to make the trend more obvious!

In R, use dygraphs to get an interactive version! It offers the little "mini-graph" at the bottom that gets you some context when you zoom on a specific area. That's a very good feature imo!

Area chart example

8. Calendar Heatmap

If each data point corresponds to a day, a calendar heatmap can uncover hidden weekly, monthly, or yearly patterns.

And good news, Joseph Barbier just built a new python library to build them easily!

(btw, Joseph is my associate, we built Matplotlib Journey together and the packages he creates are 🔥🔥🔥 !)

Calendar heatmap example

What else?!

So, what am I missing? I'd love to hear your thoughts! Feel free to drop me an email.

In any case, I hope this sparks some creative ideas for your next project involving temporal data.


Let me know if any of these options stand out for you, and let's chat again next week!
Yan

Enjoyed this?

Get one short, actionable dataviz tip every Saturday. Join 19,000+ data people.