Dataslope logoDataslope

Storytelling with Data

Turning a chart into an argument that lands

By now you can produce technically correct charts. This page is about producing charts that change minds — the difference between displaying data and communicating with it.

The discipline is sometimes called data storytelling. It's not a separate skill bolted onto visualization; it's how you use visualization in service of an argument.

A chart is an argument

Every chart you make is making a claim:

  • "Sales are growing."
  • "Customers in city A behave differently from customers in city B."
  • "This pricing change worked."

The chart is the evidence; the argument is what the chart is for. Storytelling is the discipline of making the chart match the argument so well that the reader can't miss it.

Three ingredients of a good story-chart

1. A clear claim

Before you build the chart, write down — in one sentence — the claim you want to make. "Mobile traffic surpassed desktop in Q2." That's a claim. "Here is some data on traffic" is not.

The claim shapes everything: which data to filter, which encoding to choose, what to highlight, what to leave out.

2. A focused encoding

Once the claim is clear, pick the encoding that makes the claim visually obvious. If the claim is "X surpassed Y" — a line chart with X and Y both visible, plus an annotation at the crossover, is the right shape.

If the claim is "X dwarfs everything else" — a sorted bar chart with X colored prominently and everyone else gray.

3. A clear title and annotation

The title should state the claim. Not "Sales by quarter" — say "Mobile sales overtook desktop in Q2 2024." The annotation should point at the moment that proves the claim.

Side by side: same data, different stories

Watch how the same data can tell two different stories depending on framing.

Code Block
Python 3.13.2

Both charts are true. The first emphasizes the channel mix shift; the second emphasizes the total. Neither is wrong — but they make different arguments. Choose the one that matches the honest argument you're trying to make.

The narrative arc

A multi-chart presentation often follows a small arc:

  1. Hook — one big chart that establishes the headline.
  2. Detail — a few charts that drill into the why.
  3. Conclusion — a chart or table that anchors the what next.

This is the same structure as a news article. Three to five charts told as a sequence beat fifteen charts dumped on a slide.

Annotation: don't make the reader work for the insight

If your chart's point is "this peak in February is the story," put an arrow on the peak with a label that says so. The reader's eye goes where the annotation is. Direct the gaze.

The most-shared newspaper graphics in the world (NYT, WSJ, Bloomberg) lean heavily on annotations. They almost never let a chart speak for itself.

Don't lie — but do focus

There is a difference between focusing an argument and misleading the reader.

  • Focusing: choose the slice of data that matches your claim; highlight what matters; annotate the takeaway.
  • Misleading: truncate axes to inflate small differences; cherry-pick the date range that supports your story; omit context that would change the conclusion.

The line is sometimes fuzzy, but the test is clear: could a careful reader, given your chart plus your caption, come to a different reasonable conclusion than yours? If yes, you're focusing. If no — and the conclusion contradicts the full data — you're misleading.

The next chapter dives into ethics in more detail.

Check your understanding

QuestionSelect one

What is the first step in data storytelling, before you ever open a chart library?

Pick a color palette.

Choose between Plotly and Matplotlib.

State the claim you want to make in one clear sentence.

Decide on the chart type.

QuestionSelect one

Which title is more narrative and likely more effective for a presentation chart?

"Sales by quarter."

"Quarterly metrics."

"Q4 sales grew 23%, the steepest jump since 2019."

"Untitled."

QuestionSelect one

What is the difference between focusing and misleading?

They are the same thing.

Misleading uses Plotly, focusing uses Matplotlib.

Focusing chooses a slice / framing that matches an honest claim; misleading omits or distorts context so the reader concludes something that the full data wouldn't support.

Focusing requires a license.

On this page