AI for Data Analysis & Decision Making · Charts and insight narratives · lesson 10 of 16 · 11 min
Choosing and building honest charts
The chart's job
A chart exists to answer a question quickly. AI assistants can produce charts in seconds, which makes it tempting to accept the default. Good charts come from deciding first what comparison the reader must see, then choosing the form that makes that comparison easiest.
Matching question to chart
| The reader needs to see... | Usually use | |---|---| | Change over time | Line chart (bars for few, discrete periods) | | Comparison across categories | Horizontal bar chart, sorted | | Part-to-whole (few parts) | Stacked bar or a simple table; pie only for 2-3 parts | | Distribution | Histogram or box plot | | Relationship between two measures | Scatter plot | | Exact values for lookup | A table, not a chart |
When asking the AI for a chart, state the question:
Create a chart that shows whether UAE revenue growth is outpacing UK
growth month by month in 2026. Use a line chart with both countries,
label the lines directly instead of using a legend, start the y-axis at
zero, and add a one-sentence title stating the main takeaway.
Honesty rules
AI-generated charts can mislead by default or by request. Check for:
- Truncated axes: bar charts must start at zero; otherwise small differences look huge. Line charts can use a non-zero baseline when the focus is change, but make it clear.
- Dual axes: two y-axes can suggest correlations that are artifacts of scaling. Prefer two separate charts or indexed values.
- Cherry-picked time ranges: starting at a low point exaggerates growth. Show a sensible, consistent window.
- Inconsistent intervals: missing months or uneven gaps on the time axis.
- Area and 3D effects: distort perception; avoid them.
- Percentages without bases: "up 200%" from 2 to 6 customers. Show counts too.
Clarity rules
- Title with the takeaway: "UAE revenue grew faster than UK every month since March" rather than "Revenue by country".
- Direct labels over legends where possible.
- Sort categorical bars by value.
- Highlight the important series in a strong color; mute the rest.
- Accessible colors: avoid red-green only distinctions; ensure sufficient contrast.
- Units and sources: state currency, period and data source.
Reviewing AI charts with AI
A useful loop: generate the chart, then ask a vision-capable model (or the same assistant) to critique it:
Review this chart for (1) whether a busy executive can grasp the main
point in 5 seconds, (2) anything that could mislead, (3) accessibility
issues. Suggest specific fixes.
Then apply the fixes you agree with. You remain the judge of what is honest.
Worked example
A growth marketer asks for a chart of weekly sign-ups after a campaign. The first version is a bar chart starting at 900, making a rise from 950 to 1,010 look like a doubling, with a title "Campaign success!". The revised version starts the axis at zero, extends the window to include the 8 weeks before the campaign (showing a similar bump the previous month), and retitles it "Sign-ups rose about 6% during the campaign, within the range of recent variation". Less exciting, far more useful.
Tables are sometimes better
If readers need to look up exact values (prices by plan, targets by region), a well-formatted table beats any chart. Ask the AI for a table with sensible rounding, aligned numbers, totals where meaningful and the most important column highlighted or sorted. Not every insight needs a visual.
Hands-on: an honest chart in matplotlib
When the assistant writes plotting code, ask for these choices explicitly:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 4.5))
for country, color in [("UAE", "#1f6feb"), ("UK", "#8b949e")]:
s = monthly[monthly.country == country].set_index("month")["revenue"]
ax.plot(s.index.astype(str), s.values, color=color, linewidth=2.5 if country == "UAE" else 1.5)
ax.annotate(country, (len(s) - 1, s.values[-1]), xytext=(5, 0), textcoords="offset points",
color=color, va="center") # direct label, no legend
ax.set_ylim(bottom=0) # honest baseline
ax.set_title("UAE revenue grew faster than UK every month since March", loc="left")
ax.set_ylabel("Revenue (GBP, thousands)")
ax.spines[["top", "right"]].set_visible(False)
fig.text(0.01, -0.02, "Source: order system export, 1 Sep 2026. Revenue net of refunds.", fontsize=8)
plt.tight_layout(); plt.show()
Takeaway title, direct labels, zero baseline, one highlighted series, units and source: the five fixes that matter most.
Accessibility check
Use palettes that remain distinguishable for color-blind readers (avoid red versus green alone), keep text at readable sizes on phones, and add a one-sentence text alternative describing the takeaway when charts go into documents or emails.
Second worked example: a Karachi NGO's donor report
An NGO's AI-drafted chart shows donations with a y-axis starting at 800,000 rupees, making a 5% rise look like a doubling, and uses red and green for two years. The revised chart starts at zero, uses a highlighted color for this year and a muted gray for last year, labels lines directly, and titles the chart "Donations rose about 5% year over year; growth came from recurring donors". Board members understood it in seconds, and nobody felt misled when they saw the underlying table.
Going further
If your team produces recurring charts, have the AI write a small charting style function (fonts, colors, label placement, source note) and reuse it. Consistency reduces cognitive load for readers and removes a whole class of errors from each new chart.
Video lecture: Choosing and building honest charts
Lecture coming soon · 15 chapters · about 8 minutes. Read the full transcript below.
- Charts with AI
- Why it matters
- Match question to chart
- Prompt with the question
- Honesty rules
- Clarity rules
- Example 1: the sign-up chart
- Example 2: Karachi NGO donors
- Watch me do it, part 1
- Watch me do it, part 2
- Tables and text alternatives
- Measuring charts
- Common mistakes
- Recap
- Try this now
Lecture transcript
Charts with AI
A growth marketer shares a chart titled campaign success. Weekly sign-ups soar from the bottom of the chart to the top. Impressive, until you notice the axis starts at nine hundred, and the rise is from nine fifty to a thousand and ten, about six percent. AI can produce charts in seconds, and it will happily produce misleading ones by default or on request. In this lecture you'll learn to match the question to the chart, the honesty rules, the clarity rules, how to use AI as a chart critic, and code for an honest chart.
Why it matters
Why does this matter? Because charts are how most people consume analysis. A misleading chart can drive a bad decision faster than any spreadsheet, and when people later discover the trick, they stop trusting everything you produce. A good chart answers a question quickly and honestly. And since AI makes charts nearly free, the scarce skill isn't making charts. It's deciding what comparison matters and refusing to distort it.
Match question to chart
Here's the core idea: decide first what comparison the reader must see, then choose the form that makes it easiest. Change over time: a line chart, or bars for a few discrete periods. Comparison across categories: a horizontal bar chart, sorted. Part-to-whole with few parts: a stacked bar or simple table, and a pie only for two or three parts. Distribution: a histogram or box plot. Relationship between two measures: a scatter plot. And exact values for lookup: a table, not a chart.
Prompt with the question
And tell the AI the question, not just the chart type. For example: create a chart that shows whether UAE revenue growth is outpacing UK growth month by month in twenty twenty-six. Use a line chart with both countries, label the lines directly instead of using a legend, start the y-axis at zero, and add a one-sentence title stating the main takeaway. That prompt encodes most of the good decisions. Without it, you'll get defaults: a legend, a generic title and an axis chosen by the software.
Honesty rules
Now the honesty rules. Bar charts must start at zero, otherwise small differences look huge. Line charts can use a non-zero baseline when the focus is change, but make it clear. Avoid dual axes, which can suggest correlations that are artifacts of scaling; use two charts or indexed values. Don't cherry-pick time ranges that start at a low point. Watch for missing periods and uneven gaps. Avoid area and three D effects. And never show percentages without bases: up two hundred percent might mean two customers became six.
Clarity rules
And the clarity rules. Titles state the takeaway, like UAE revenue grew faster than UK every month since March, not revenue by country. Use direct labels over legends. Sort categorical bars by value. Highlight the important series in a strong color and mute the rest. Use accessible colors, avoiding red versus green alone, with enough contrast. And state units and sources. Think of a chart like a road sign. It should be readable at speed, by anyone, and point one way.
Example 1: the sign-up chart
First example, the one from the start. The growth marketer's weekly sign-up chart starts at nine hundred, making a rise from nine fifty to a thousand and ten look like a doubling, titled campaign success. The revised version starts the axis at zero, extends the window to include the eight weeks before the campaign, which shows a similar bump the previous month, and is retitled: sign-ups rose about six percent during the campaign, within the range of recent variation. Less exciting, and far more useful.
Example 2: Karachi NGO donors
Second example, a business case. A Karachi non-profit's AI-drafted donor chart shows donations with a y-axis starting at eight hundred thousand rupees, making a five percent rise look like a doubling, and uses red and green for two years. The revised chart starts at zero, uses a highlighted color for this year and muted gray for last year, labels lines directly, and titles it: donations rose about five percent year over year, and growth came from recurring donors. Board members understood it in seconds, and nobody felt misled when they saw the table.
Watch me do it, part 1
Watch me use AI as a critic. I generate the chart, then give it to a vision-capable model with this prompt: review this chart for whether a busy executive can grasp the main point in five seconds, anything that could mislead, and accessibility issues, and suggest specific fixes. It flags that my title describes rather than concludes, that two lines use colors that are hard to distinguish for some color-blind readers, and that the source is missing. I apply the fixes I agree with. I stay the judge of what's honest.
Watch me do it, part 2
Then I lock the good decisions into code, so the next chart is right by default. In the lesson's matplotlib example: the highlighted series gets a thicker line, the other is muted gray. Each line gets a direct label at its last point instead of a legend. The y-axis starts at zero. The title states the takeaway and aligns left. The top and right borders go. And a small source line says where the data came from and that revenue is net of refunds. Five choices, reusable forever.
Tables and text alternatives
And remember that tables are sometimes better. If readers need to look up exact values, like prices by plan or targets by region, a well-formatted table beats any chart. Ask the AI for sensible rounding, aligned numbers, totals where meaningful, and the most important column highlighted or sorted. Not every insight needs a visual. And add a one-sentence text alternative describing the takeaway whenever charts go into documents or emails, for accessibility.
Measuring charts
How do you measure whether your charts work? Try the five-second test with a colleague: show the chart for five seconds, hide it, and ask what it said. If they repeat your title's takeaway, it works. If they describe the chart instead, like there were some lines going up, it doesn't. And track how often stakeholders ask what am I looking at. That question should become rare as your charts get clearer.
Common mistakes
Common mistakes. Accepting default charts. Truncated bar axes. Dual axes that imply relationships. Legends instead of labels. Rainbow colors with no emphasis. Titles that describe instead of conclude. And no source or units. Each of these is easy to prevent with the checks you've just seen, and each one, left unchecked, eventually reaches a decision-maker.
Recap
Recap. Decide the comparison the reader must see, then choose the form. Follow the honesty rules: zero-based bars, careful dual axes, no cherry-picked ranges, and percentages with bases. Follow the clarity rules: takeaway titles, direct labels, sorting, highlighting, accessible colors, units and sources. Use AI to critique charts, but you judge what's honest, and lock good choices into reusable code.
Try this now
Try this now. Take a chart from a recent report and critique it against the honesty and clarity rules. Ask a vision-capable AI to critique it too, then compare lists. Regenerate it with your fixes, and save the plotting code or chart template so your next chart starts right.
Key takeaways
- Decide the comparison the reader must see, then choose the chart form.
- Check honesty: zero-based bars, dual axes, cherry-picked ranges, missing periods, percentages without bases.
- Use takeaway titles, direct labels, sorting, highlighting, accessible colors, units and sources.
- Use AI to critique charts, but you judge what is honest.
Try it
Take a chart from a recent report and critique it with the honesty and clarity rules. Ask an AI to regenerate it with your fixes.