Mohamed A. Adel.

Chart Types & When to Use Each

Topic 2 of 11 · In Data Visualization · September 9, 2026

⏱ 1–2 WeeksBeginner

Master the complete visual toolkit: line, bar, scatter, heatmap, treemap, waterfall, and more — with clear rules on when each is appropriate and when each fails.

++++FREE LEARNING PATHDATA VISUALIZATIONDATA VISUALIZATION · PHASE 1 · FUNDAMENTALSCHART TYPES & WHENTO USE EACHMaster the complete visual toolkit: line, bar, scat…· 1 / 3BEGINNER1–2 WEEKSmotif / barsTOP 29403 · 3 · MODULE 4.7

Overview

The Visualization Fundamentals gave you the science. This topic gives you the vocabulary: every major chart type, when each one is the right answer, and — just as importantly — when each one is the wrong answer.

There are over 100 named chart types in the wild, but you need to master roughly 17 to cover 95% of business analysis work. For each, you will learn: what question it answers, what it looks like, when to use it, when to avoid it, and a real-world example. By the end, mapping a business question to the right chart should be automatic.

Before You Start

  • Load your retail or superstore dataset with order date, region, category, sales and profit columns in Python or your preferred tool
  • Keep the master question-to-chart map visible: trend to line, compare to bar, relationship to scatter, distribution to box or violin, composition to stacked bar or donut
  • Be able to build all seventeen core chart types from the previous topic so the misfit test is honest
  • Review the pre-attentive hierarchy so you can justify each chart choice with accuracy, not taste
  • Prepare one dataset you will deliberately force into a pie chart, a box plot, a Sankey diagram and a waterfall chart to observe the misfits

Learning Objectives

  • Map every common business question to its optimal chart type
  • Build line, bar, column, area, pie, donut, scatter, and bubble charts from scratch
  • Explain when waterfall, funnel, treemap, and Sankey diagrams are appropriate
  • Use box plots and violin plots to show distributions and compare groups
  • Apply radar charts, bullet charts, and heatmaps for specialized comparisons
  • Recognize the limitations and failure modes of each chart type
  • Build a personal "question → chart" decision reference card
  • Evaluate a chart type choice using the pre-attentive hierarchy from <a href="/data-visualization/viz-fundamentals">Fundamentals</a>

Prerequisites

Complete Visualization Fundamentals — you need to understand pre-attentive attributes and the data-ink ratio before choosing charts.

The Master Question-to-Chart Map

Before looking at individual types, internalize this decision framework. Every business question falls into one of five categories:

Question CategoryPrimary ChartsSecondary / Alternatives
Trend over timeLine chart, area chartConnected scatter, slope chart
Comparison (categories)Bar chart, column chartDot plot, lollipop chart
Relationship (2+ numerics)Scatter plot, bubble chartHeatmap (binned scatter)
DistributionHistogram, box plot, violinDensity plot, ridge plot
Composition (parts of whole)Stacked bar, 100% stacked, donutTreemap, waterfall, Sankey

This table is your 80/20: memorize it and you will never be stuck choosing a chart.

Line & Area Charts: Trends Over Time

Line charts are the gold standard for time-series data. The position of each point along a continuous axis encodes the value — the most accurate pre-attentive attribute.

  • Use when: showing change over continuous time (daily revenue, monthly active users, yearly temperature)
  • Avoid when: categories are not time-based (use bars instead), or when you have fewer than 4 time points (not enough data for a line)
  • Multiple lines: up to 5–7 is readable; beyond that, use a highlight (one accent color, rest gray) or small multiples

Area charts are line charts with the area below filled. They emphasize volume over time, and stacked area charts show composition over time. But stacked areas distort the comparison of middle series — use stacked bars for accurate category comparison.

Slope charts are a special case: two time points connected by a line. They are the most efficient way to show before/after change across categories.

line_chart.pypython
import matplotlib.pyplot as plt
import pandas as pd

# Monthly revenue trend — clean line chart with annotation
months = pd.date_range("2025-01", periods=12, freq="MS")
revenue = [120, 135, 128, 145, 152, 160, 155, 170, 185, 192, 200, 215]

fig, ax = plt.subplots(figsize=(10, 4))
ax.plot(months, revenue, color="#4C72B0", linewidth=2)
ax.fill_between(months, revenue, alpha=0.1, color="#4C72B0")
ax.set_title("Monthly Revenue — 2025", fontsize=14, loc="left")
ax.set_ylabel("Revenue ($K)")
ax.spines[["top", "right"]].set_visible(False)
ax.annotate("Seasonal dip", xy=(months[2], revenue[2]),
            xytext=(months[2], revenue[2] + 20),
            arrowprops=dict(arrowstyle="->", color="gray"),
            fontsize=9, color="gray")
plt.tight_layout()
plt.savefig("line_chart.png", dpi=150)

Bar & Column Charts: Comparing Categories

Bar charts (horizontal) and column charts (vertical) encode value by length — the second most accurate pre-attentive attribute after position.

  • Use when: comparing discrete categories (regions, products, departments)
  • Sort bars by value — never alphabetically unless the category has an inherent order
  • Horizontal bars when labels are long (better readability)
  • Vertical columns when time is the x-axis (column chart) or when there are few short labels
  • Grouped bars for comparing two sub-groups side by side
  • Stacked bars for showing composition within each category

Always start the value axis at zero for bar and column charts. A truncated axis on a bar chart distorts the length encoding and is the most common way charts mislead.

Pie, Donut, and 100% Stacked: Composition

Pie charts encode value by angle — the third most accurate encoding. They have strict rules:

  • Maximum 5 slices — beyond that, the eye cannot distinguish angles
  • Never use 3D — it distorts the perspective
  • Sort slices by value, starting at 12 o'clock
  • Direct labels — no legends; put the percentage and label on or next to each slice

Donut charts are a pie chart with the center removed. They are aesthetically cleaner and the center can display a KPI number. Same rules apply: ≤5 slices, direct labels.

100% stacked bar/column charts are almost always better than pie charts for composition. They compare proportions across categories using length (more accurate than angle) and support more than 5 categories.

When pies fail: comparing proportions across groups (use stacked bars), showing more than 5 categories (use a treemap or bar chart), or when the exact values matter (use a table or bar chart with direct labels).

Scatter, Bubble, and Heatmaps: Relationships

Scatter plots encode two numeric variables by position on X and Y — the most accurate encoding for relationships.

  • Use when: exploring the relationship between two continuous variables (ad spend vs revenue, age vs income)
  • Add a trend line (linear or polynomial) to make the pattern visible
  • Watch for: non-linear relationships, clusters, outliers, and overplotting (too many points)

Bubble charts add a third variable as the size of each point. They are useful but less accurate than scatter — area is harder to judge than position. Use bubble charts when the size variable is a secondary emphasis, not the primary comparison.

Heatmaps encode a third variable as color intensity on a 2D grid. They are excellent for:

  • Correlation matrices (relationship between many numeric variables at once)
  • Activity patterns (hour-of-day × day-of-week, or geographic density)
  • Large datasets where individual points would overplot
correlation_heatmap.pypython
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# Correlation heatmap — quick, clean, readable
np.random.seed(42)
df = pd.DataFrame({
    "ad_spend": np.random.uniform(10, 100, 200),
    "signups": np.random.uniform(20, 200, 200),
    "revenue": np.random.uniform(50, 500, 200),
    "churn_rate": np.random.uniform(0.01, 0.15, 200),
})
df["revenue"] = df["ad_spend"] * 3.2 + np.random.normal(0, 30, 200)
df["signups"] = df["ad_spend"] * 1.8 + np.random.normal(0, 15, 200)

corr = df.corr()
fig, ax = plt.subplots(figsize=(6, 5))
sns.heatmap(corr, annot=True, fmt=".2f", cmap="RdBu_r",
            center=0, vmin=-1, vmax=1, ax=ax, square=True)
ax.set_title("Correlation Matrix", fontsize=13, loc="left")
plt.tight_layout()
plt.savefig("heatmap.png", dpi=150)

Waterfall, Funnel, and Sankey: Flow & Change

Waterfall charts show how an initial value is affected by a series of positive and negative changes. They answer: "How did we get from A to B?"

  • Use for: profit/loss breakdowns, revenue bridges, budget variances, before/after with intermediate steps
  • Rule: each bar starts where the previous one ended; positive bars go up, negative bars go down, the total bar starts from zero

Funnel charts show a process with sequential stages where the count decreases at each step. They answer: "Where do we lose people?"

  • Use for: sales pipelines (lead → qualified → proposal → closed), user journeys (visit → signup → activate → retain)
  • Rule: stages must be sequential and monotonically decreasing; label each stage with the count and percentage

Sankey diagrams show flow from one set of categories to another. They answer: "Where does X go?"

  • Use for: user journey flows (which pages lead to purchase), budget allocation (where does revenue go), energy flow (source → use → loss)
  • Rule: width encodes volume; keep to ≤10 source categories or the diagram becomes unreadable

Box Plot, Violin, and Ridge: Distributions

Box plots (box-and-whisker) show the distribution of a numeric variable: median, quartiles, range, and outliers in one compact shape.

  • Use for: comparing distributions across groups (salary by department, response time by region)
  • Read: the box = middle 50% (IQR), the line = median, the whiskers = 1.5× IQR or min/max, dots = outliers
  • Avoid when: the audience does not know how to read them — for general audiences, a bar chart of medians with error bars is simpler

Violin plots combine a box plot with a kernel density estimate (KDE) — they show the full shape of the distribution, not just summary statistics.

  • Use when: you need to see if a distribution is bimodal, skewed, or has heavy tails
  • Pair with: a strip/swarm plot showing individual data points for full transparency

Ridge plots (joy plots) stack multiple density plots vertically, each slightly overlapping. They are excellent for showing how a distribution shifts across ordered categories (e.g., temperature by month).

Treemap, Radar, and Bullet: Specialized Charts

Treemaps encode hierarchical composition as nested rectangles. Area = value. They answer: "How is the whole distributed across categories and subcategories?"

  • Use for: budget allocation, market share with sub-segments, file system sizes, product catalog revenue
  • Rule: larger rectangles = larger values; color can encode a second metric (e.g., growth rate); label the most important rectangles directly

Radar charts (spider charts) plot multiple variables on axes radiating from a center. They answer: "How does this entity score across multiple dimensions?"

  • Use for: competitor comparison (5–8 metrics), skill assessments, product feature scoring
  • Limitation: the area of the shape is misleading (perimeter depends on the number of axes). Use only for profile comparison, never for precise value reading

Bullet charts combine a bar with a performance marker (target line) and qualitative ranges (background shading for poor/good/excellent). They answer: "How are we performing against the target?"

  • Use for: KPI tracking (revenue vs target, with poor/good/excellent zones)
  • Origin: Stephen Few designed them as a compact alternative to gauge charts

Hands-On Practice

Build your personal chart-type reference card:

  1. For each of the 17 chart types above, build one example in Python (matplotlib/seaborn) or your preferred tool. Use the same dataset — the Superstore or retail sales dataset works well.
  2. Write a one-line rule for each: when to use it, when not to.
  3. The misfit test: try to force every dataset into every chart type. Notice which ones look wrong — this builds your intuition for the limits.
  4. The grayscale test: convert all 17 charts to grayscale. Which survive? Which need color labels or shape encoding to remain readable?

Build one example of each chart type in a Jupyter notebook. For each, write: (1) the question it answers, (2) one thing to watch out for, (3) one real-world use case. This is your permanent reference card.

Deeper Worked Examples

These examples push further than the core content — each one is a complete, step-by-step solution you can follow and then reproduce on your own.

Choosing the charts for a twelve-month retail sales review

Problem. A marketing director needs five visuals from one retail dataset: monthly revenue trend, revenue per region (North EUR 520K, South EUR 640K, East EUR 710K, West EUR 490K), ad spend versus revenue, channel mix by quarter, and a revenue bridge from opening to closing balance. Name the exact chart for each deliverable and justify it.
1

Step 1

Name the trend chart first: a single-line chart of monthly revenue over twelve months, encoding values by position along a continuous time axis.
2

Step 2

Use a horizontal bar chart for the regional comparison, sorted by value so West reads as the lowest, with a zero baseline because bars encode by length.
3

Step 3

Choose a scatter plot with a trend line for ad spend versus revenue; if a third variable must join, add it as bubble size only as secondary emphasis since area is less accurate than position.
4

Step 4

Show channel mix across quarters as a 100% stacked bar chart per quarter, so proportions compare by length rather than angle and stay legible beyond five categories.
5

Step 5

Close the set with a waterfall chart for the revenue bridge: opening value, upsell additions, churn deductions, and a closing total bar starting from zero, answering how we got from A to B.
6

Step 6

Check every choice against the master map, and record the two deliberate rejections — a pie chart (eight channels, angle encoding) and a radar chart (reading areas, misleading) — with the written reason.

Fixing a mislabelled funnel and a rainbow correlation matrix

Problem. A lead generation team presents a funnel of 1000 lead to 800 to 500 to 300 to 150 as if every step were a real stage, when the 800-to-500 drop is actually one qualification step split in two. They also share a twelve-variable correlation matrix heatmapped in Excel reds and greens, plus a five-stage quote for your own dashboard team.
1

Step 1

Confirm every funnel stage is a true sequential step with a strictly decreasing count; the 800-to-500 drop is a single qualification action, so merge it into one stage.
2

Step 2

Re-paint the funnel as four genuine stages with counts and per-stage conversion: 1000 to 800 to 500 to 300 to 150 becomes five bars of true stages with 62.5% on the qualification step.
3

Step 3

Add the overall conversion (150 divided by 1000, so 15%) and label the sharpest loss — stage two — as the actionable insight the funnel is built to reveal.
4

Step 4

Rebuild the correlation matrix with a diverging RdBu colour scale centred at zero so positive and negative correlation diverge from a colourless midpoint.
5

Step 5

Annotate each cell with the coefficient value and cluster the rows and columns so related variables group visually, turning a twelve-by-twelve wall into a scannable structure.
6

Step 6

Swap the colour-only encoding for value plus colour so the message survives grayscale printouts, matching the accessibility discipline from the color topic.

Common Mistakes

  • Using a pie chart for 8+ categories (angles become indistinguishable)
  • Using a bar chart with a truncated y-axis (distorts the length encoding)
  • Choosing a 3D bar chart or 3D pie for &quot;visual appeal&quot;
  • Using a line chart for categorical (non-time) data
  • Using a scatter plot with 50,000 points and massive overplotting (use a heatmap or density)
  • Using a radar chart and claiming area means something (it does not)
  • Choosing a waterfall chart when a simple bar chart shows the comparison better
  • Using a funnel chart for non-sequential stages (the shape implies order that may not exist)
  • Building a box plot for an executive audience who has never seen one
  • Forgetting to sort bars by value — unsorted bars force the reader to do the comparison

Real-World Usage

In professional settings, the ability to choose the right chart quickly and defend the choice is what separates a junior from a senior analyst. Interviewers will ask: "You have sales data by region and month — what chart do you build first?" The answer is not "a bar chart" — it is a systematic question-to-chart mapping. This topic's 17-chart vocabulary, combined with the pre-attentive hierarchy, gives you the framework to answer any such question with confidence and evidence.

Mini Project

Business problem: A marketing director wants a quarterly review deck with 5 key visuals. They have data on campaign spend, conversions, revenue by channel, user retention, and regional performance.

Dataset: Use a public marketing dataset (Google Analytics sample, Facebook ads data, or a Kaggle marketing dataset) with at least 5 metrics across multiple dimensions.

Objective: Build 5 different chart types, each answering a different question, each following the question-to-chart map.

1

Task 1

Define 5 business questions (one per metric/dimension combination)
2

Task 2

Map each question to the optimal chart type using the master map
3

Task 3

Build each chart in Python or your tool of choice
4

Task 4

Apply the data-ink audit: strip chart junk from all 5
5

Task 5

Run the grayscale test on all 5 — fix any that fail
6

Task 6

Annotate each chart with a one-sentence takeaway
7

Task 7

Write a one-paragraph summary of why each chart type was chosen
ChartQuestionWhy This Type
Line chartRevenue trend over 12 monthsTime-series trend — position encoding
Sorted horizontal barTop 10 campaigns by conversionCategory comparison — length encoding
Scatter + trend lineAd spend vs revenue relationshipTwo numeric variables — position encoding
Stacked bar (100%)Channel mix by quarterComposition across time — length encoding
WaterfallRevenue bridge: start → upsells → churn → endSequential change — how did we get from A to B?

Key Takeaways

  • Map questions to charts: trend → line, compare → bar, relationship → scatter, distribution → box/violin, composition → stacked bar/donut
  • Pie charts: ≤5 slices, direct labels, sorted, no 3D
  • Bar charts: always start at zero, sort by value, horizontal for long labels
  • Scatter plots: the most accurate encoding for two numeric variables
  • Waterfalls show change breakdown, funnels show sequential loss, Sankeys show flow
  • Box plots for technical audiences, dot plots for general audiences
  • Treemaps for hierarchical composition, radar for multi-dimensional profile comparison
  • Every chart type has a failure mode — know the limits, not just the strengths

Key Terms & Glossary

The vocabulary this topic uses, defined the way a working professional would.
TermMeaning
Question-to-chart mapThe decision table that routes each business question — trend, comparison, relationship, distribution, composition — to its primary and alternative chart types.
Stacked barA bar divided into segments showing composition within each category; the 100% stacked version compares proportions, which beat pie angles for accuracy.
Waterfall chartA chart showing how an initial value is changed by a series of additions and subtractions to reach a closing total, answering how we got from A to B.
Sankey diagramA flow diagram in which the width of each connecting band encodes the volume of flow between source and destination categories.
Box plotA compact distribution summary showing median, quartiles, whiskers at 1.5 times the interquartile range, and outliers; best for technical audiences.
OverplottingToo many points overlapping in a scatter plot so that density is hidden; fixed with a binned heatmap or density plot.
Bullet chartA compact KPI bar with a target marker and shaded poor, good and excellent background zones, designed by Stephen Few to replace gauge charts.

Learning Resources

These curated sources go deeper than this module: official docs, books, interactive practice, and full courses. Mix them into your routine to go from comfortable to professional.

FT Visual Vocabulary

The definitive chart-type catalog — maps every question to the best visual encoding with examples.

Open resource ↗

Data Visualization Catalogue

A searchable gallery of every chart type with detailed use cases, pros, cons, and visual examples.

Open resource ↗

From Data to Viz

Decision tree for choosing the right chart type — from dataset format to recommended visual.

Open resource ↗

Chart Selection Cheat Sheet —有问题

Visual guide mapping data types and questions to the best chart types.

Open resource ↗

Datawrapper Academy

Practical how-tos on building and annotating each chart type for real audiences.

Open resource ↗

Python Chart Examples — Python Graph Gallery

Python code examples for every chart type using matplotlib, seaborn, and plotly.

Open resource ↗

Chapter Quiz

Put this lesson to work: answer the questions below, get instant feedback and a pass/fail score. Score 70% or higher before you move on — that is your gate to the next topic.

Chapter Quiz — Chart Types & When to Use Each

Five questions on the visual toolkit: selecting the right chart for the question and knowing each type's failure mode.

0 / 5

Question 1 of 5

A funnel chart shows lead → qualified → proposal → closed with counts 1000 → 800 → 500 → 150. What rule must hold for it to be valid?

Knowledge Check

A line chart — it encodes value by position along a continuous time axis, which is the most accurate encoding. A single line (or up to 5 lines if comparing segments) over 36 months gives an immediate, honest picture of the trend.
10 slices make angles indistinguishable (more than 5 is too many). 3D distorts the perspective, making slices at the front look larger. There are no direct labels, forcing the reader to match colors to a legend. A 100% stacked bar or treemap would be far more accurate.
Appropriate for showing how an initial value changes through a series of additions and subtractions (revenue bridge, P&L). Misleading when the intermediate steps are not sequential or when the audience expects a simple comparison (use a grouped bar instead).
A grouped box plot or a violin plot — both show the full distribution (median, spread, outliers) across categories side by side. A histogram works for one category; a box/violin handles 4+ groups cleanly.
Both show the relationship between two numeric variables by position. A bubble chart adds a third variable encoded as the size of each point. The trade-off: area is less accurate than position, so the third variable in a bubble chart is harder to read precisely.
15% (150 / 1000). The funnel chart makes this visible at a glance — the 85% drop is the story, and where the biggest drops occur (500 → 300 is a 40% loss) is the actionable insight.

End-of-Topic Exam

Hint: Check the line count against the five-to-seven rule, the pie's slice count against the five-slice rule, and the alternatives that use length encoding.

Model answer: Nine lines on one chart exceed the readable five-to-seven limit and force the eye to map nine colours back to a legend. The redesign is small multiples of the top categories' trends, or a single highlight chart with one accent line and the rest greyed. The pie chart fails outright because nine slices make angles indistinguishable; category share belongs in a bar chart sorted by value with direct labels, or a treemap if hierarchy matters. Both replacements use length or position instead of angle, which is the accurate encoding.

Hint: Think about the x-axis type and about the number of time points available.

Model answer: A line chart is wrong when the horizontal axis is not continuous time — for example, plotting regions or departments on the x-axis, where a bar chart is the correct category comparison. It is also wrong with too few time points, such as only three measurements, where the implied continuity between points is meaningless; a few columns or a dot plot is more honest. The line's strength is encoding value by position on a continuous time axis, and that is only a strength when time is really present.

Hint: The chart implies a sequence that may not exist — decide what makes each stage a stage.

Model answer: The danger is that the funnel's narrowing shape implies a causal, ordered sequence — visitors pass through each step — when the middle step is really two separate hand-offs of unknown reliability. Drawing it as one slope fabricates a smooth loss where none is measured. The redraw splits the stage into its two real bars with a gap or separate mini-funnel, each with its own count and conversion, so the audience sees where trust is actually lost rather than reading a false smoothed curve.

Hint: Recall the accuracy hierarchy: position and length beat area, and the third variable in a bubble is only ever a secondary emphasis.

Model answer: A bubble chart does add a third variable, but it encodes that variable by area, which the pre-attentive hierarchy ranks as low accuracy — the eye cannot judge circle sizes to within a few percent. You rarely know whether one bubble is 20% or 35% bigger than another. The scatter's two position axes remain the most accurate channel, so the bubble's third dimension must be treated as emphasis, not as a primary comparison. Only use bubbles when the size variable is secondary and the audience only needs the rough order.

Next Step

Congratulations — you just finished Chart Types & When to Use Each. The next topic is Design Principles & Honesty. Press on when you are ready: it will build directly on what you practiced here.