,

Common chart crimes (and fixes)

12 min read
Editorial featured image for Common chart crimes (and fixes). Title text reads Common chart crimes (and fixes).

Someone pastes a 3D exploding pie with fourteen slices into the channel and writes “thoughts?” You have thoughts. Most of them are about geometry and regret. Chart crimes are not a personality flaw. They are what happens when defaults, decoration, and deadline panic meet a room that still needs a decision. The fix is not snark. The fix is a calm audit list you can run under pressure.

This is Part 7 of Charts that make sense, the last part of the series. Parts 1 through 6 built the constructive stack: purpose, chart choice, honest axes, color, dashboard vs slide, and annotation. Now we name common failure modes and the repairs that keep trust. Tool-agnostic first. The same crimes show up in BI tools, slideware, spreadsheets, and code-drawn plots from the Python for analytics path. Foundations still ask what decision you are serving (Analytics foundations). Quality still asks whether the number deserves a stage (Data quality for people who ship numbers). More paths: Learn hub.

What you’ll learn

  • A practical catalog of chart crimes with why they mislead
  • Concrete fixes for pies, 3D, dual axes, truncated scales, rainbow maps, and more
  • A worked “crime scene” redesign with a comparison table
  • An audit checklist you can run in five minutes before a meeting
  • A full series recap of Parts 1 through 7 so the path sticks

What we mean by “chart crime”

A chart crime is a design choice that systematically makes the wrong comparison easier than the right one, or that burns attention without adding decision value. Not every ugly chart is a crime. Not every crime is intentional. Many are defaults: auto dual axis, auto 3D, auto rainbow, auto pie for any percentage.

We care because workplaces make real bets from these pictures: hire, cut, ship, pause, price. Misleading encoding is not a style debate. It is operational risk with better fonts.

Chart crimes and quick fixes

Crime 1: Pie overload

What it looks like: A pie (or donut) with many slices, similar sizes, or both. Labels collide. Legend maps colors to categories on the other side of the slide. Sometimes a second pie sits next to the first for “comparison.”

Why it fails: People compare angle and area poorly, especially for near-equal slices. Many categories turn the chart into a color legend exam. Side-by-side pies make comparison even harder than two bar charts.

Fix:

  • Prefer a horizontal bar ranked by value for many categories
  • If composition matters, show share as bars or a simple table with % and absolute value
  • If you keep a pie, use it for two to four very different parts of a whole, with direct labels
  • Never use pies to compare across groups; use grouped or small-multiple bars

Visual example: same share data as a crowded pie versus ranked bars. The bars make order and gaps readable without a color legend exam.

e7 pie before
e7 pie after

Crime 2: 3D and other decorative distortion

What it looks like: 3D columns, 3D pies, extruded donuts, perspective walls, heavy gradients that look like neon signage.

Why it fails: Perspective foreshortens bars and slices. Equal values stop looking equal. Decoration compete with data ink. Projectors and screenshots make it worse.

Fix: Flat 2D encodings. Length and position first. Save depth effects for video games. If a stakeholder “likes 3D,” show the same data flat and ask which one they can read faster. Speed usually wins over novelty after one cycle.

Visual example: fake depth and shadow versus flat 2D bars. Equal values stay equal when perspective is gone.

e7 3d before
e7 3d after

Crime 3: Truncated axes that sell drama

What it looks like: A bar chart of values from 92 to 96 with a y-axis that starts at 90, so tiny gaps look like cliffs. Or a line chart zoomed so noise looks like a crisis.

Why it fails: Bar length is read as magnitude from a baseline. When the baseline is not zero (for bars), the visual story overstates differences. Lines can sometimes omit zero when the point is small changes, but then the title and annotation must say so, and you should not pretend the swing is huge.

Fix: For bars comparing magnitudes, start at zero unless you have a rare, labeled reason not to. For lines about small process changes, show the scale clearly, add a reference for context, and avoid panic titles. Part 3 of this series was entirely about this honesty contract.

Visual example: scores 92 to 96 with a y-axis starting at 90 versus a zero baseline. The gap did not change. The drama did.

e7 trunc before
e7 trunc after

Crime 4: Dual-axis tricks

What it looks like: Bars for revenue on the left axis, a line for conversion rate on the right axis, carefully scaled so the line “tracks” the bars and implies a story the data does not earn. Or two series with incompatible units forced into visual marriage.

Why it fails: Readers assume shared vertical meaning. Dual axes break that assumption. Authors (or auto-chart features) can invent correlations by stretching scales. Even honest dual axes overload working memory.

Fix:

  • Prefer two charts stacked with a shared x-axis (time or category)
  • Or index both series to a common baseline (e.g., 100 = start) when the point is co-movement, and say so
  • If you must dual-axis, label both axes loudly, use very different encodings, and never imply causation from alignment alone
  • Ask: would this survive a skeptical finance partner zooming the right axis?

Visual example: dual axis that forces two series to track, versus two panels that share time without shared vertical meaning.

e7 dual before
e7 dual after

Crime 5: Rainbow heatmaps and unordered color

What it looks like: A matrix where low-to-high uses a full rainbow (blue-cyan-green-yellow-orange-red). Or categories assigned random bright colors with no legend logic. Or red/green only status with no second cue.

Why it fails: Rainbow scales are not perceptually uniform. Some transitions look like bigger jumps than others. Colorblind readers lose categories. Neon noise reads as “important” even when values are dull. Part 4 covered safer palettes and contrast.

Fix: Use a single-hue or controlled sequential scale for magnitude. Use a limited qualitative palette for categories. Add direct labels. Pair status color with icons or text. Test in greyscale when the decision is high stakes.

Visual example: a jet rainbow heatmap versus a sequential palette. Ordered intensity is easier to read and safer for many viewers.

e7 rainbow before
e7 rainbow after

Crime 6: Chart type roulette

What it looks like: Every KPI gets a different toy: gauge, radar, bubble, waterfall, funnel, treemap, all on one page, because variety feels like sophistication.

Why it fails: Comparison dies when encodings change without reason. Cognitive load rises. People spend the meeting decoding shapes instead of deciding. Part 2’s chooser exists so you match type to question, not to boredom.

Fix: Repeat the same honest pattern. Bars for rank, lines for time, consistent KPI cards with sparklines. Novelty is not a KPI.

Crime 7: Spaghetti lines and unreadable legends

What it looks like: Twelve regions on one line chart in twelve colors, legend at the bottom, crossings everywhere.

Why it fails: Working memory cannot track that many series. The interesting series hide in the knot.

Fix: Small multiples (one panel per region). Or highlight one series and grey the rest. Or show top N plus “other.” Direct-label ends of lines when few series remain.

Visual example: ten competing lines versus gray context with one highlighted series. Focus is a design choice, not a legend tax.

e7 spaghetti before
e7 spaghetti after

Crime 8: Map when a bar would do

What it looks like: A choropleth of sales by state when the question is “who is top five,” and Alaska/Texas dominate perception because of area, not value.

Why it fails: Geographic area is not business importance. Maps shine when spatial pattern is the point (coverage gaps, logistics routes). They mislead when rank or rate is the point and land area steals the show.

Fix: Ranked bars for top/bottom. Maps for spatial questions, with careful rate vs count choices (foundations: rates need denominators).

Crime 9: Silent definitions and vanity precision

What it looks like: “Users: 1,204,338” with no as-of date, no inclusion rules, seven decimal places on a survey score, or a gauge to 99.87% “health” with no formula.

Why it fails: False precision signals false certainty. Missing definitions guarantee two teams will invent two meanings. This is a quality crime wearing a chart costume.

Fix: Footnotes, as-of stamps, grain in plain language. Round to decision-useful precision. Link to the certified metric when it exists. Annotation habits from Part 6 are the patch.

Crime 10: Dashboard collage without a primary idea

What it looks like: Part 5’s villain: twelve equal tiles, no hierarchy, screenshot dumped into a board deck.

Why it fails: Attention has no landing strip. Monitoring and deciding get mixed. Everyone picks a different tile and argues past each other.

Fix: One idea per view. Split monitor vs decision slide. Declutter. Claim title. So what.

Worked example: one slide, four crimes, one repair

A product team presents “Feature adoption health” for a QBR. The original slide contains:

  • A 3D pie of users by plan tier (eight slices)
  • A dual-axis chart: weekly active users (left) and “feature clicks” (right) scaled to look perfectly aligned
  • A rainbow heatmap of click rates by weekday × hour
  • Title: “Feature metrics overview”

Nobody can answer: did the new onboarding change adoption for free-tier users?

Repair plan

Pick one idea: “Free-tier weekly activation rose from 18% to 27% after onboarding shipped; paid tiers were flat.” Build one honest visual and one support visual.

  • Replace the pie with a ranked bar of activation by tier, or a simple before/after grouped bar for free vs paid
  • Replace dual axis with two panels sharing a time axis: activation rate, then absolute WAU
  • Demote the heatmap to appendix, or replace with a small line of free-tier activation by week with a release marker
  • Title becomes the claim; so what names the product decision (“keep onboarding; test the empty-state next”)
ElementCrimeWhy it hurtFix
3D pie, 8 slicesPie overload + 3DHard to compare tiersRanked or grouped bars
Dual axis WAU vs clicksDual-axis trickFake alignment storyTwo panels, shared time
Rainbow heatmapUnordered colorNoise without decisionAppendix or drop for QBR
“Metrics overview”No claim titleNo retellable messageClaim + so what + footnote
No as-of / definitionSilent definitionArgument about “activation”Footnote: formula + date

Sample numbers for the repaired primary table (illustrative for teaching, not a real product export):

TierActivation beforeActivation afterChange (pp)
Free18%27%+9
Pro41%42%+1
Business55%54%−1

A code-shaped sketch of the primary bars (optional path; same idea in any tool):

import numpy as np
import matplotlib.pyplot as plt

tiers = ["Free", "Pro", "Business"]
before = [18, 41, 55]
after = [27, 42, 54]
x = np.arange(len(tiers))
width = 0.35

fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(x - width/2, before, width, label="Before", color="#9ca3af")
ax.bar(x + width/2, after, width, label="After", color="#c2410c")
ax.set_xticks(x, tiers)
ax.set_ylabel("Weekly activation rate (%)")
ax.set_ylim(0, 70)
ax.set_title("Free-tier activation rose 18% → 27% after onboarding; paid flat")
ax.legend()
ax.annotate(
    "+9 pp",
    xy=(0 + width/2, 27),
    xytext=(0.35, 34),
    arrowprops=dict(arrowstyle="->"),
    fontsize=9,
)
ax.text(
    0,
    -0.18,
    "So what: keep onboarding live; next test empty-state for free tier.",
    transform=ax.transAxes,
    fontsize=9,
)
plt.tight_layout()

What that code draws (example output from the snippet above):

e7 activation output
Grouped bars: Free tier drives the lift; Pro and Business barely move.

Five-minute pre-meeting audit

Print this mentally. Run it on every chart that leaves your hands:

  1. Purpose: Explore, explain, or persuade? (Part 1)
  2. Type fit: Does the chart match comparison, trend, composition, or distribution? (Part 2)
  3. Scale honesty: Baseline and dual-axis choices defensible? (Part 3)
  4. Color: Meaning, contrast, not rainbow chaos? (Part 4)
  5. Format: Dashboard monitor vs one-idea slide? (Part 5)
  6. Annotation: Claim title, focus, so what, footnote? (Part 6)
  7. Crime sweep: Pie overload, 3D, dual-axis trick, spaghetti, silent definitions? (Part 7)
  8. Quality: Would the metric survive a definition challenge? (data quality series)

Rule of thumb: If fixing the crime takes longer than explaining the number, the slide is doing theater. Cut scope until truth is cheap to show.

Common mistakes when “fixing” crimes

  • Replacing one trick with another. Killing the pie but keeping dual-axis drama is not virtue.
  • Over-correcting into emptiness. Declutter is not deleting the comparison standard or the so what.
  • Policing taste instead of risk. Prioritize crimes that change decisions over fonts you merely dislike.
  • Humiliating authors in public. Share a better version privately; teach the checklist; keep the relationship. Snark does not scale culture.
  • Ignoring data quality. A perfect bar of a broken metric is still a crime against Monday.

How to practice this week

  1. Collect five charts from recent meetings (yours or public). Tag each with crimes from this post.
  2. Repair one of them end to end: type, scale, color, annotation, so what.
  3. Run the five-minute audit on next week’s deck before it leaves draft.
  4. If you plot in code, keep a personal snippet library of honest defaults (zero baseline bars, annotate, no 3D) beside the habits in Python for analytics.
  5. When metrics disagree, pause visualization and check definitions with the data quality playbook before you “fix the chart.”

Series recap: Charts that make sense (E1-E7)

You finished the path. Here is the whole spine in one place.

  • Part 1. What is this chart for? Separate explore, explain, and persuade. Finish the sentence: this chart helps someone decide whether to ___.
  • Part 2. Chart chooser for real life. Match comparison, trend, composition, and distribution to encodings that humans can actually read. Avoid type roulette.
  • Part 3. Axes, scales, and honest baselines. Magnitude bars need honest baselines. Treat dual axes and log scales as rare, labeled tools, not defaults.
  • Part 4. Color, labels, and accessibility. Color carries meaning; it is not wallpaper. Design so messages survive colorblindness and greyscale.
  • Part 5. Dashboards vs single slides. Monitors and decision slides are different products. One idea per view. Declutter on purpose.
  • Part 6. The annotation habit. Claim titles, callouts, reference lines, footnotes, and a so what turn geometry into a message people can retell.
  • Part 7. Common chart crimes and fixes. Audit pies, 3D, dual-axis tricks, rainbow maps, spaghetti, silent definitions, and collage pages. Repair under pressure without theater.

How the series connects to the rest of Analytics Made Simple:

You do not need a new BI license to use this series. You need a slower five minutes before send, and the courage to ship fewer, clearer pictures.

Quick recap

  • Chart crimes make the wrong comparison easy or burn attention without decision value.
  • Top repairs: bars over overloaded pies, flat over 3D, honest scales, two panels over dual-axis tricks, controlled color, fewer series, claim titles.
  • Run a short audit that walks Parts 1 through 7 before high-stakes meetings.
  • Fix culture with checklists and better drafts, not public shaming.
  • The series closes here: purpose → choice → scale → color → format → annotation → crime audit.

Ship one cleaner chart this week. Then another. Trust compounds.

Sources

Research and further reading used for this article: