Skip to content
,
Charts that make sense · Part 3

Axes, scales, and honest baselines

11 min read
Editorial featured image for Axes, scales, and honest baselines. Title text reads Axes, scales, and honest baselines.

The same numbers can tell two very different stories depending on where a chart’s axis starts. On one chart of monthly revenue, the line climbs gently across a full scale that begins at zero. On another, the axis starts at $920k and the same line looks like a rocket. The axis decides whether a chart is honest, so it is part of the claim you are making.

Say you make a revenue chart for a board meeting, and you start the axis high so the line “shows momentum.” Every number on it is true. Still, everyone leaves the room believing growth was dramatic, because the steep shape did the persuading. A note about where the axis starts would have kept the chart honest. So ask yourself: better for whom, and for what decision?

Axes are claims about magnitude

A chart turns numbers into position, length, or area. The axis tells the viewer how to translate those marks back into quantities, so if the axis misleads by implication, the marks mislead too. Edward Tufte’s ideas about graphical integrity and Stephen Few’s practical guidance on business graphs both treat the choice of scale as part of telling the truth, and not as a style toggle at the end.

Honest axes: baseline and scale

In a meeting, few people will recompute the values. They read the slope with their gut, and your scale trains that gut. That is real power, so use it carefully.

Rule of thumb: If a scale change would reverse the emotional story without reversing the numbers, flag the scale in the title or subtitle, or do not use it.

Bar charts and the zero baseline

For bar charts, where the length of each bar shows the size of a value, start the axis at zero unless you have a rare and well-labeled reason not to. The reason is that people compare lengths, so a bar that is twice as tall is read as twice as large. If your axis starts at 90 instead of 0, then a value of 100 and a value of 110 look wildly different in length while staying close in reality.

This is the classic “truncated bar” mistake, and it still shows up in sales dashboards, survey results, and vendor pitch decks. Tools make it easy, because when the minimum is set to “automatic,” the scale hugs the data. Automatic is not the same as honest.

Visual example: the same four scores, with a truncated axis first and a zero baseline second.

e7 trunc before
e7 trunc after

When zero is non-negotiable: comparing magnitudes with bars or columns, stacked compositions that imply a total length, and any ranking chart where length is the main signal.

When zero is awkward: measures such as temperature, which have no meaningful zero in the business sense, or indices where zero sits outside the domain. Even then, label the axis clearly and consider whether a table would be safer.

Line charts: zoom is sometimes honest

Lines show change and shape more than absolute length. Zooming a line chart to a relevant band can help people see a break in a noisy series, and that is different from truncating bars. Even so, zoom is not a free pass to invent drama.

Honest zoom follows a few practices:

  • State the axis range in the subtitle, for example “Y-axis: $920k to $980k.”
  • Show a small full-scale inset if the absolute level matters.
  • Avoid a zoom that turns a 1% move into a cliff without saying so.
  • Prefer notes about events on the chart over theatrical scale alone.

Suppose the decision is “are we up a little or a lot compared with history?” Then the absolute context may matter more than a zoomed slope. If the decision is “did the series break out of its recent band after the release?”, a zoomed band can be the right tool. Match the scale to the job, and start by naming the job before you draw anything.

Truncated axes: how to talk about them at work

When someone sends you a truncated chart, you do not need to give a lecture. You need a calm alternative, and these lines work well:

  • “Can we show the zero-baseline version next to this so the room sees the absolute size?”
  • “The change is real, but the axis makes it look larger than the percent move. Let’s put the percent in the title.”
  • “If we keep the zoom, let’s label the min and max so nobody thinks it starts at zero.”

Your colleagues are usually not trying to deceive anyone. They are trying to make a weak projector readable, so help them keep the readability without borrowing false urgency.

Dual axes: the charming trap

A dual-axis chart puts two series on one plot with two different vertical scales. It looks efficient, but it often invents a relationship. Put marketing spend on the left axis and signups on the right axis, and suddenly the lines “move together,” because you chose scales that make them hug.

Dual axes cause several problems:

  • Viewers mix up the units without noticing.
  • Crossing lines suggest an intersection that does not exist in reality.
  • You can make almost any two series look related by rescaling them.
  • Telling the lines apart by color alone fails in print and for many people with color vision differences, which the next post in this series covers.

Safer patterns exist for the same story:

  • Draw two separate charts with time axes that line up.
  • Index both series to 100 at a start date and plot them on one axis, with a clear “index” label.
  • Plot the ratio or the difference if that is the real metric.
  • Show a scatter of the two measures if correlation is the claim, with the usual caution about causation.

Datawrapper and other charting educators have written carefully about dual-axis pitfalls for years. The short workplace version is that if you need dual axes to make the story work, the story may not work.

Suppose a stakeholder insists on dual axes for a “single slide.” Offer a compromise of two small charts stacked with a shared time axis, the same width, and the same tick marks for time. That layout still fits on a slide, and it refuses the fake hug of two independent scales. You can still color the series carefully and annotate the event that matters. What you will not do is let a secondary axis manufacture a narrative that the metrics did not earn.

Another dual-axis cousin puts percent on one side and a count on the other for the same family of measures. Sometimes people mean well, because they want share and volume together. Prefer a bar of volume with the share labeled on each bar, or two panels. Mixing percent and count on dual axes is how a small region with loud percent growth steals the meeting from the region that actually drives the workload.

Log scales in one honest paragraph (plus a little more)

A logarithmic scale compresses large values and expands small ones. It helps when values span orders of magnitude, such as website traffic that runs from 200 to 2,000,000, or early infection counts, when multiplying matters more than adding. On a log scale, equal vertical distances mean equal ratios and not equal differences. That is powerful and easy to misread. If your audience thinks in dollars and headcount, a log axis without a short explanation will be read as linear. So use log scales rarely, label them loudly, and keep them for analyst-facing exploration more than for first-time executive decks. If you only need to show that one category dominates, a sorted bar on a linear scale is usually clearer.

If you use log scales in Python later, libraries such as matplotlib support them directly. That is an implementation detail. The communication question is whether your audience understands change by multiplication. When in doubt, show both the linear and the log version, or show a table of growth rates.

Example: a log-scaled bar chart when values span orders of magnitude. The axis must say “log scale” so nobody reads it as linear dollars.

e3 log example
Log y-axis example: label the scale so multiplicative change is clear.

Aspect ratio and time axes

Stretching a chart wide can flatten a trend, and squashing it tall can steepen it. There is no single perfect aspect ratio, but there is a bad habit, which is reshaping the plot until the line “looks like leadership expects.” Keep time in order and keep the intervals consistent. Do not hide a missing week by closing the gap without a break mark, and avoid decorative 3D effects that warp perception further.

For uneven time intervals, mark the individual points and connect them only when the continuum is real. Monthly points joined by a line, as if they were a continuous daily process, can smooth away real bumps.

Worked example: same revenue, three scales

Suppose monthly recurring revenue (MRR) for a product line looks like this:

MonthMRRChange vs prior
Jan$940,000n/a
Feb$948,000+0.9%
Mar$955,000+0.7%
Apr$962,000+0.7%
May$970,000+0.8%
Jun$978,000+0.8%

Here are three presentations of the same series:

VersionY-axisWhat the gut feelsHonest use?
A. Full scale bars$0 to $1.0MA steady, high level with small movesYes, for showing magnitude
B. Zoomed line$930k to $990kA clear upward pathYes, if it is labeled as a zoom
C. Truncated bars from $930k$930k to $990kHuge growthNo, because bar length is being used to show size

Version B can support a careful operations discussion about whether growth is stable. Version C is the one that makes a 4% half-year rise look like a moonshot. If the board needs both the absolute size and the recent slope, show A and B together and never C alone.

# Pseudo scale checklist before export
y_min = axis_minimum()
encoding = "bar_length"  # or "line_position"
if encoding == "bar_length" and y_min > 0:
    warn("Bars imply length from zero. Reset baseline or switch to line + label.")
if encoding == "line_position" and y_min > 0:
    require_subtitle(f"Y-axis starts at {y_min}")
if dual_axis:
    prefer("two charts or indexed series")
# Always write the percent change in text when slope looks dramatic.

If you build this in a notebook (a document that mixes code and its results), the same honesty rules apply as in plotting with Python for analytics. Save a figure to share only after the axis would survive a skeptical question from finance.

Units, breaks, and multiple charts

Honest scale also covers units and breaks, which come down to four habits:

  • Label the currency, and say whether the figures are in thousands or millions, because a missing unit can make a number look a thousand times bigger or smaller.
  • Do not switch units in the middle of a series without a hard visual break.
  • Avoid broken axes that hide a gap while still inviting a comparison of lengths.
  • Prefer two charts over one chart with a magic second scale.

When totals disagree across systems, fix the definitions before you argue about axes, because axis craft cannot rescue a conflict between metrics. That is quality work, and the data quality series covers it.

Write a one-line scale note in your draft checklist the same way you write a filter note. For example: “Bars from zero; line inset zoomed to $930k-$990k for slope; percent change in title.” When reviewers only see the zoomed line, you still have a paper trail for why the second view exists. That habit also helps when someone screenshots one panel into Slack without the companion chart.

Finally, remember that “honest” depends on the audience in one narrow sense. A research team that lives in log space may read log axes fluently, while a cross-functional leadership group may not. Honesty includes choosing the scale your audience can decode without a private tutorial. If you must use a specialized scale, spend ten seconds teaching it on the slide, because ten seconds of teaching beats ten minutes of confused debate.

Common mistakes

  • Truncated bars for rankings. Length stops meaning magnitude.
  • Unlabeled zoomed lines. Viewers assume the axis starts at zero.
  • Dual axes as a storytelling shortcut when two separate charts would do.
  • Log scales without preparing the audience for how to read them.
  • Aspect ratio games that steepen a story for a screenshot.
  • Missing-week compression that makes time look continuous when it is not.
  • Accepting the tool’s automatic axis without a human glance at it.

Quick recap

  • Axes train the gut, so treat them as part of the claim.
  • Bars that show magnitude need a zero baseline.
  • Zoomed lines can be honest if they are labeled, while truncated bars rarely are.
  • Dual axes often invent relationships, so prefer two charts or an index.
  • Log scales suit stories about ratios and audiences you have prepared.

How to practice this week

  1. Find one bar chart in your last deck and confirm the baseline is zero. If it is not, rebuild it.
  2. Find one line chart with a tight axis, and add an explicit range label in the subtitle.
  3. If you have a dual-axis chart, split it into two charts for the next review and compare the quality of the discussion.
  4. Write the percent change next to any chart that “looks dramatic.”
  5. Ask a colleague where the axis starts without letting them look at the numbers. If they guess wrong, the chart needs clearer labeling.

Paths for related skills sit on the Learn page. The next post covers color, labels, and accessibility, so that honest axes are still readable for more people and in more formats.

Series notes

This is Part 3 of Charts that make sense. The previous post covered chart types, and the next one covers color, labels, and accessibility.

Sources

Written by

Jose S

Founder & Lead Analyst · Analytics Made Simple

Hands-on data strategist, analytics engineering lead, and educator. Writing practical, no-fluff guides to help everyday teams, analysts, and engineers master SQL, AI systems, and modern data architectures.

Keep going

Same lessons in your feed

Short diagrams, hooks, and weekly tutorials on Substack, Instagram, X, and Facebook.

Google Search Prefer our practical guides in Google Search & Top Stories: