Lesson 1.4: Charting numbers honestly and spotting misleading charts
Learn to pick the right chart for each question and to spot the tricks that make honest numbers lie: cut axes, cherry-picked windows and raw counts.
By the end of this lesson you will be able to choose the right chart for a question, draw it so that it tells the truth, and spot the five most common ways a chart misleads. You will see how a cut axis turns a 6 per cent gap into a gap that looks 150 per cent, how a short time window reverses a trend, why raw counts can point at the wrong branch, and how bin width can hide two peaks. You should have read Lessons 1.1 to 1.3, since charts show the summaries you learned there. The Python snippets use matplotlib and need only a little programming knowledge, and every example can be followed from the numbers in the text.
A chart is not a decoration for a report. It is an argument, and like any argument it can be fair or unfair. The data in a chart may be perfectly accurate while the picture still leaves the reader with a false belief. Honest charting is therefore partly design and partly ethics. The design rules are simple, and the ethics come down to one question you can ask of any chart: would the reader draw the same conclusion if they could see all the numbers?
Start with the question, not the chart type
New analysts open a charting tool and pick whatever looks good. Experienced ones start from the question the chart should answer, because each question has a natural shape.
Question · Example · Best chart · AvoidHow do categories compare? · Sales by city · Bar chart, sorted · Pie with many slices
How does a value change over time? · Orders by month · Line chart · Bars for dense time series
How are values spread? · Delivery times · Histogram or box plot · Only a mean
How do two measures relate? · Ad spend and sales · Scatter plot · Two lines on separate axes
What share does each part have? · Payment methods · Stacked bar or a pie with three to five slices · A pie with ten slices
How do groups differ in spread? · Salaries by team · Side-by-side box plots · Only group averages
Predict first: a manager asks "has our complaint volume got better or worse since the new process started in June?" Which chart type from the table would you choose, and what would you put on the horizontal axis? Decide before reading on.
The answer is a line chart with time on the horizontal axis, and ideally a marker at the date the process changed. A bar chart of the average before and after would hide how the number moved month by month and would not show whether the improvement started before June. The question is about change over time, so the chart should show time.
Bars must start at zero
A bar chart encodes a number as the length of a bar, and people read length as proportion. A bar twice as long is read as twice as large. That reading is only correct if the bars start from zero. If the axis begins at 50 instead, a bar of 55 and a bar of 52 look wildly different even though the values are nearly equal.
Take two products with satisfaction scores of 52 and 55. The real ratio is 55 ÷ 52 = 1.06, a gap of about 6 per cent. Now start the vertical axis at 50. The first bar is 2 units tall (52 − 50) and the second is 5 units tall (55 − 50), so the second looks 5 ÷ 2 = 2.5 times taller, an apparent gap of 150 per cent. The data did not change. The chart simply cut off the part of each bar that held the baseline. Try it.
Slide the axis start from 0 up to 50 and watch the line bend upwards. At zero the apparent ratio equals the true one. By 50 it has grown to 2.5. The same trick works in reverse to make a real difference look tiny. There is one honest exception: line charts do not need to start at zero, because they show a position and a trend, not a length. A line chart of a currency rate between 82 and 84 would be unreadable if it began at 0. Even so, label the axis clearly, because a reader should always see what range they are looking at.
Choosing the window: the same data, opposite stories
The time window you show can reverse the message. Here are twelve months of orders for a small online shop.
Over the whole year the story is clear growth. Now crop the chart to July through September, where the values are 120, 112 and 106. A chart of only those three months shows orders falling by (106 − 120) ÷ 120 = −11.7 per cent, and a headline "orders are in decline" would be built entirely from facts. Nothing in it is false, and the conclusion is still wrong. Nobody had to invent a number. They only chose where the picture began and ended.
The cure is to choose a window for a reason you can state, and to show enough history that the reader can judge. If the business is seasonal, compare the same month a year earlier instead of the previous month, because December will always beat September in a shop that sells gifts. A good habit is to show at least one full cycle of the pattern you suspect, such as a full year for something seasonal, and to mark events on the chart so that readers can see them. When you do need to show a short window, say so in the title.
Counts, rates and the question of the denominator
A bar chart of raw counts can point confidently at the wrong answer. A company has two branches. Branch A received 900 complaints last month and Branch B received 300. A chart of counts shows Branch A as three times worse.
Now add the denominator. Branch A serves 30,000 customers and Branch B serves 6,000. Branch A had 900 ÷ 30,000 = 3 per cent complaints per customer, and Branch B had 300 ÷ 6,000 = 5 per cent. Branch B is the one with the worse record, by a clear margin, and the chart of counts pointed the wrong way. The simulator lets you change the numbers.
The rule is general. Whenever groups differ in size, whether branches, cities, product lines or months with different numbers of days, compare rates, shares or per-unit figures, and show the counts beside them. Deaths per 100,000 people, sales per store and defaults per 100 loans are all rates, and each exists because raw totals mislead.
Showing distributions without hiding them
To show how values are spread, use a histogram, which counts values in bins, or a box plot, which draws the five-number summary from Lesson 1.3. Both can mislead if drawn carelessly, and the usual culprit is bin width.
Recall the 400 ride-hailing trips from Lesson 1.3, which had two peaks: short city trips and long suburb or airport trips. In 5 km bins the counts were 120, 60, 20, 40, 110 and 50, and the two peaks are plain. Merge the bins in pairs to 10 km and the counts become 180, 60 and 160. The peaks are still visible, though less sharply. Merge them to 15 km bins and the counts become 200 and 200. The chart is now two equal bars, which looks like perfectly flat, uninteresting data. Nothing about the trips changed. The bins were too wide to see the shape.
There is no single correct bin width. Too narrow and the chart is jagged noise. Too wide and real features vanish. Try several widths, and trust a shape only if it survives a reasonable range of them. A box plot cannot show two peaks at all, because it compresses the data into five numbers, so for any column where shape matters, look at a histogram first.
Relationships: scatter plots
To see whether two measures move together, plot one against the other, with each row as a dot. This is a scatter plot. It shows direction (upward means that as one rises, the other tends to rise), strength (a tight band means a strong link) and oddities, such as clusters or isolated points that a single correlation number would hide.
Three cautions apply. First, with thousands of points the dots pile on top of each other, so use smaller, partly transparent dots or bin the points. Second, a trend line can make a weak pattern look strong, so look at the dots before the line. Third, a pattern between two columns does not show that one causes the other. Ice cream sales and drownings both rise in summer, and neither causes the other. Lesson 2.4 returns to correlation and causation properly.
Parts of a whole
When you want to show how a total splits, such as payment methods or the cost breakdown of a loan, a pie chart is acceptable only if there are about five slices or fewer and the slices differ clearly. People judge angles poorly, so a pie with ten similar slices is unreadable. A sorted bar chart of the same shares is almost always easier to read, and a stacked bar lets you compare the split across several groups, such as payment mix by city. If the numbers must sum to 100 per cent, say that in the title.
A worked example: fixing a quarterly revenue chart
Here is a case that combines several of the problems above. A finance team reports quarterly revenue, in rupees crore, of 2.1, 2.3, 2.0 and 2.6 for the four quarters of a year. The first draft of the slide is a bar chart whose vertical axis starts at 1.8, with the title "Revenue surges in Q4".
Work through the checklist. The question is about change over the year, so bars are not the natural choice, and a line would show the movement better. The axis starts at 1.8, so the Q4 bar is 2.6 − 1.8 = 0.8 units tall while the Q1 bar is 2.1 − 1.8 = 0.3 units tall, and Q4 looks 0.8 ÷ 0.3 = 2.7 times Q1. The true ratio is 2.6 ÷ 2.1 = 1.24, a rise of 24 per cent. The word "surges" is carrying more than the numbers allow, and the dip in Q3 is hidden by the cut. The fair version is a line chart, labelled in crores, with the axis shown honestly and a title such as "Revenue rose 24 per cent from Q1 to Q4, after a dip in Q3". It is a less dramatic slide, and it is one that will survive questions.
A last technique helps whenever you need to compare many groups, such as twelve branches over twelve months. Instead of one chart with twelve tangled lines, draw twelve small charts in a grid, each with the same axes. These are called small multiples, and because every panel uses the same scale, the eye can compare shapes at once. Keep the axes identical across panels, or the comparison becomes another cut-axis trick.
Labels, colour and the small things that decide trust
Many honest charts fail through carelessness. A short checklist covers most of it.
Write a title that states the finding or the question, such as "Complaint rate is higher at Branch B", and not "Complaints by branch".
Label axes with units, and say whether amounts are in rupees, thousands or crores.
Put values or direct labels on bars and lines where it helps, so the reader does not have to hunt along an axis.
Use colour with a purpose: one colour for everything, and a contrasting colour to highlight the one item you are talking about. Avoid red and green alone, because many people cannot tell them apart.
Sort bars by value unless the categories have a natural order, such as months or age groups.
Add the source and the date of the data in small text.
Avoid dual axes and 3D effects. A chart with two vertical axes can be made to show almost any relationship by choosing the scales, and 3D bars distort the sizes they represent.
Drawing the charts in Python
The code for a clean chart is short. This example draws sorted bars with a highlighted bar, a line chart with a marked event, and a histogram with a chosen bin width.
python
import matplotlib.pyplot as plt
bars: sorted, start at zero, highlight the one that matters
rates = {"Branch A": 3.0, "Branch B": 5.0}
fig, ax = plt.subplots()
ax.bar(rates.keys(), rates.values(), color=["#999999", "#c0392b"])
ax.setylim(0, 6)
ax.setylabel("Complaints per 100 customers")
ax.settitle("Branch B has the higher complaint rate")
line: mark the event that changed the process
fig, ax = plt.subplots()
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"]
ax.plot(months, [100, 104, 108, 112, 118, 124, 120, 112])
ax.axvline("Jun", linestyle="--") # new process started
histogram: try several bin widths and keep the one that survives
fig, ax = plt.subplots()
ax.hist(df["km"], bins=range(0, 35, 5)) # 5 km bins
plt.show()
You do not need to memorise any of this. What matters are the choices it shows: the baseline is set explicitly with setylim(0, ...), the title states the finding, and the bin width is a decision you make and test.
Redrawing a misleading chart: a short checklist
Take any chart you are about to publish, or that someone sent you, and ask these questions in order.
1. What question does this chart answer, and is the chart type the natural one for that question?
2. Do the bars start at zero? If a line chart does not, is that stated?
3. Is the time window justified, and would a longer or seasonal comparison change the message?
4. Are the groups the same size? If not, are the values rates or per-unit figures?
5. Do the bins or categories hide a feature? Try a narrower bin or a different grouping.
6. Are the title, units, source and date present?
7. Would a reader who saw the full table reach the same conclusion?
A chart that passes all seven is not guaranteed to be insightful, but it will not mislead, and that is the first duty of a data scientist.
Common mistakes
Truncating a bar chart's axis. Cut axes exaggerate small gaps. Start bars at zero.
Choosing a convenient time window. Show a full cycle, and compare like with like when data is seasonal.
Plotting counts when groups differ in size. Divide by the denominator, and show both.
Using a pie for many categories. Use sorted bars instead.
Letting default bins decide. Test several bin widths before trusting a histogram's shape.
Two vertical axes on one chart. Choose different scales and any two lines can be made to move together.
A clever chart nobody can read. If it needs a paragraph to explain, simplify it.
Ignoring colour blindness. Do not rely on red against green alone, and label directly.
Key takeaways
Start from the question: comparison, change, spread, relationship or share. The question picks the chart.
Bars encode length and must start at zero. Lines may start elsewhere if the axis is clearly labelled.
A cut axis can turn a gap of 6 per cent into one that looks 150 per cent. The time window can reverse a trend.
When groups differ in size, compare rates or per-unit figures and show counts beside them.
Histograms depend on bin width, and box plots cannot show two peaks. Try several widths.
Good labelling, restrained colour, a clear title and a stated source build trust. Avoid dual axes and 3D.
Check yourself
1. Two bars show 80 and 88 on an axis starting at 70. How tall does the second look compared with the first, and what is the true ratio?
Apparent: (88 − 70) ÷ (80 − 70) = 1.8 times. True: 88 ÷ 80 = 1.1 times. The cut axis exaggerates the gap.
2. Why might a line chart of an exchange rate start at 82 rather than 0, while a bar chart of sales may not?
A line shows position and trend, so a narrow range is fine if labelled. A bar shows length, which is read as proportion, so it must start at zero.
3. Store X had 600 returns from 12,000 orders and Store Y had 450 returns from 5,000 orders. Which has the worse return rate?
X: 5 per cent. Y: 9 per cent. Store Y is worse, although X has more returns.
4. A histogram of 400 values shows two peaks in 5-unit bins and one flat bar in 30-unit bins. Which is right?
Neither is wrong, but the wide bins hide a real feature. Try several widths and trust shapes that survive.
5. A chart of the last three months shows sales falling 12 per cent. What should you check before repeating the message?
The longer history and the same period a year earlier, because the window and seasonality can reverse the story.
Try this
Find a chart you have seen in the news, a company report or a social post, or build one from your own data. Set aside forty minutes.
1. Write down the question the chart claims to answer and whether the chart type fits it, using the table near the top.
2. Check the axis. Do the bars start at zero? Do line charts show their range? Compute the true ratio of two values and compare it with the ratio on the picture, using the cut-axis simulator above.
3. Check the time window. Find the data over a longer period, or the same period a year earlier, and see whether the message changes.
4. Check the denominators. If the chart compares groups, find their sizes and compute rates. Use the counts-and-rates simulator with the real numbers.
5. If the chart is a histogram, redraw it with at least two other bin widths and note whether any feature appears or disappears.
6. Redraw the chart yourself in a spreadsheet or in Python with a zero baseline, a title that states the finding, labelled units and a source line.
7. Write three sentences: what the original chart made you believe, what the fair version shows, and what the author could have done to be clearer.
A good result is a before-and-after pair of charts with a short note on each fix. Keep it in your portfolio: showing that you can spot and repair a misleading chart is a useful skill in any data role. With that, Module 1 is complete: you can read a table, clean it, summarise it and chart it honestly. The next module builds the probability and statistics that tell you whether a pattern is real or just noise.
Tags: Data Science Data visualisation Charts Storytelling Beginner