Dashboards and reporting skill 02 of 6

Chart selection

The wrong chart does not just look odd, it makes the reader draw the wrong conclusion. This skill makes an AI agent choose a chart from the question and the data, not from habit: name the relationship, read the data shape, pick from a decision table, then check the chart does not mislead.

chart-selection/SKILL.md, version 1.0.0, about 2,600 words.

Download .mdSkill folder (.zip)

When to use this, and when not to

Use this skill whenever the task is to turn a number or a table into a single chart and the right chart type is in question. The triggers are "which chart should I use", "what is the best way to visualise this", "bar or line", "is a pie chart alright here", "plot this", or "this chart looks wrong or misleading". The work is to match the chart to the question being asked and the shape of the data, then to check that the chart does not distort what it shows.

Do not use it to lay out a whole screen of charts, which is dashboard-design, to write a report or presentation that argues a case, which is data-storytelling, or to compute the statistics behind the chart, which is the data-analysis skills. This skill picks and sanity-checks one chart at a time.

The core idea: a chart type is a choice about which comparison you make easy to see. The wrong type does not just look odd, it makes the reader do the wrong comparison or draw the wrong conclusion (Royal Statistical Society, *Best Practices for Data Visualisation*). So choose from the question and the data, not from habit or from what looks impressive.

Inputs the agent must have before starting

  1. The question the chart answers. "How did revenue change over the year", "which region sold most", "are price and demand related", "how is response time spread". The question names the relationship, and the relationship picks the chart.
  2. The shape of the data. Which columns are categorical and which numeric, how many categories, how many series, whether there is a time axis, and whether the geography matters in its own right.
  3. The audience and the medium. Graph literacy varies, and a chart for a specialist analysis can be denser than one for a general audience or a public slide (Royal Statistical Society). A chart read on a phone has less room than one in a report.
  4. Whether values are counts, rates or parts of a whole. Magnitude compares counted numbers; parts of a whole must sum to 100%; a rate is not a count. Confusing these is how a stacked chart or a pie ends up lying.
  5. The real numbers. Never invent data points, a trend or a benchmark to make a chart. If a value is missing, show the gap honestly or say the data is not available.

If the question or the data shape is unclear, ask before plotting. A chart built on the wrong assumption about what the columns mean is worse than no chart.

Raw SKILL.md file

.md

This is the exact file agents read, including the credit header and licence notice. Save it as chart-selection/SKILL.md.

---
name: chart-selection
description: >
  Choose the right chart for a question and the data behind it, instead of reaching for a default, by naming the relationship the chart must show and the shape of the data, then picking from a decision table and applying integrity and accessibility rules. Covers the nine relationship families (change over time, magnitude, ranking, part-to-whole, deviation, correlation, distribution, flow, spatial), when bar, line, scatter, histogram, box, stacked bar, slope, small multiples and maps each fit, when a pie is acceptable and when it is not, bars starting at zero, limiting lines, direct labelling and colour-blind-safe palettes. Use it when someone says "which chart should I use", "what chart for this data", "best way to visualise", "is a pie chart ok", "bar or line", "my chart looks wrong or misleading", or "plot this". Do NOT use it to lay out a whole dashboard (see dashboard-design), to write a narrative report (see data-storytelling), or to run the analysis itself (see the data-analysis skills).
license: Free to use and adapt under CC BY 4.0, with credit to Afeez Adebayo. Link afeezadebayo.com, https://www.linkedin.com/in/afeez-adebayo/ and this skill's page at https://afeezadebayo.com/skills-md/data/dashboards-reporting/chart-selection/.
---

# Chart selection

## When to use this, and when not to

Use this skill whenever the task is to turn a number or a table into a single chart and the right chart type is in question. The triggers are "which chart should I use", "what is the best way to visualise this", "bar or line", "is a pie chart alright here", "plot this", or "this chart looks wrong or misleading". The work is to match the chart to the question being asked and the shape of the data, then to check that the chart does not distort what it shows.

Do not use it to lay out a whole screen of charts, which is `dashboard-design`, to write a report or presentation that argues a case, which is `data-storytelling`, or to compute the statistics behind the chart, which is the data-analysis skills. This skill picks and sanity-checks one chart at a time.

The core idea: a chart type is a choice about which comparison you make easy to see. The wrong type does not just look odd, it makes the reader do the wrong comparison or draw the wrong conclusion (Royal Statistical Society, *Best Practices for Data Visualisation*). So choose from the question and the data, not from habit or from what looks impressive.

## Inputs the agent must have before starting

1. **The question the chart answers.** "How did revenue change over the year", "which region sold most", "are price and demand related", "how is response time spread". The question names the relationship, and the relationship picks the chart.
2. **The shape of the data.** Which columns are categorical and which numeric, how many categories, how many series, whether there is a time axis, and whether the geography matters in its own right.
3. **The audience and the medium.** Graph literacy varies, and a chart for a specialist analysis can be denser than one for a general audience or a public slide (Royal Statistical Society). A chart read on a phone has less room than one in a report.
4. **Whether values are counts, rates or parts of a whole.** Magnitude compares counted numbers; parts of a whole must sum to 100%; a rate is not a count. Confusing these is how a stacked chart or a pie ends up lying.
5. **The real numbers.** Never invent data points, a trend or a benchmark to make a chart. If a value is missing, show the gap honestly or say the data is not available.

If the question or the data shape is unclear, ask before plotting. A chart built on the wrong assumption about what the columns mean is worse than no chart.

## The workflow, step by step

### 1. Name the relationship the chart must show

Map the question to one of nine relationship families (Financial Times, *Visual Vocabulary*):

- **Change over time:** a trend across dates or periods.
- **Magnitude:** comparing the size of counted values across categories.
- **Ranking:** where an item sits in an ordered list matters more than its exact value.
- **Part-to-whole:** how one total breaks into components.
- **Deviation:** variation above or below a reference such as zero, a target or an average.
- **Correlation:** whether two or more variables move together.
- **Distribution:** how values are spread and how often each occurs.
- **Flow:** movement or transfer between states or places.
- **Spatial:** where location or geographic pattern is the point.

Decision rule: if you cannot name the relationship, you are not ready to pick a chart. Most "which chart" mistakes are really "which relationship" mistakes.

### 2. Read the shape of the data

Note the number of variables and their types: one categorical and one numeric (a comparison), two numeric (a correlation or a distribution), a time column plus one or many series, a categorical breakdown that sums to a total (part-to-whole), or coordinates and a region (spatial). The shape narrows the family to a specific chart.

### 3. Pick the chart from the relationship and the shape

| Relationship | Default chart | Notes |
|---|---|---|
| Change over time | Line chart | One line per series; for a few periods a column chart also works |
| Magnitude (compare categories) | Bar chart, sorted | Horizontal bars when labels are long; bar axis starts at zero |
| Ranking | Sorted bar, or a dot/lollipop | Sort by value, not alphabetically; bar-chart race for rank over time |
| Part-to-whole | Stacked bar, or a pie for 2 to 5 slices only | Stacked bar beats pie for comparing parts; use a treemap for many nested parts |
| Deviation | Diverging bar from a zero or target line | Diverging stacked bar for agree/disagree survey data |
| Correlation | Scatter plot | Add a trend line only when a relationship is real; bubble for a third value |
| Distribution (one variable) | Histogram, or a box/violin plot | Try several bin widths; a box plot hides sample size, so note n |
| Distribution (compare groups) | Small multiples, strip or beeswarm | Keep a shared scale across panels |
| Flow | Sankey diagram | For movement between states, stages or places |
| Spatial | Choropleth for rates, proportional symbol for totals | Use a map only when location is the real question |

When several charts fit, choose the one the audience reads most easily (Royal Statistical Society). A single key number is often clearest as large text, not a chart at all (Nussbaumer Knaflic, *Storytelling with Data*).

### 4. Apply the integrity rules before you draw

These stop a technically valid chart from misleading (data-to-viz, "Caveats"; Nielsen Norman Group):

- **Bars start at zero.** A bar's length is its value, so a truncated axis exaggerates a difference. A line chart need not start at zero, because it reads position, not length.
- **One y-axis.** Avoid dual y-axes; they imply a correlation the data may not support. Index both series to a common base, or use two stacked panels.
- **Scale bubbles by area, not radius.** Radius scaling overstates large values several times over.
- **Try more than one histogram bin width.** Different bins can suggest different stories, so check the shape is stable.
- **Sort bars by value**, not by label, unless the categories have a natural order (such as age bands).

### 5. Reduce to one message

A chart should make one comparison easy. Too many lines becomes a "spaghetti" chart no one can read: keep to about five to seven series, and above that highlight one line and grey the rest, or use small multiples (data-to-viz; Nussbaumer Knaflic). A legend with many entries is a warning sign; data-to-viz suggests worrying once you reach fourteen groups. Prefer labelling series directly over forcing the eye to a legend and back.

### 6. Make it accessible

- Do not rely on colour alone to tell series apart; add direct labels, patterns or position, because about one in twelve men has reduced colour vision.
- Use a colour-blind-safe palette and keep text and key elements at WCAG 4.5:1 contrast or better.
- Avoid the rainbow palette for a numeric scale; use a single-hue sequential scale, and a diverging scale only around a meaningful midpoint (data-to-viz).
- Write the axis labels and units in full; never leave a reader guessing what a number measures.

### 7. Title and label honestly

Give the chart a title that states the takeaway, not just the subject: "West Coast drove Q4 growth" rather than "Sales 2024" (Nussbaumer Knaflic). Label units and the data source, and mark any estimated or projected values so they are not read as observed.

### 8. Verify against the quality bar

Run the finished chart against the quality bar below. Every item is checkable.

## Worked example, end to end

A team asks to "visualise our sales." The question is actually two: which regions sell most, and how total sales changed over the year. The obvious move draws a pie of regions and a second pie for last year, so the reader squints at angles and cannot compare the two.

Naming the relationships fixes it. "Which region sells most" is magnitude, so the chart is a bar chart sorted high to low, axis starting at zero, with the top region first. "How did sales change over the year" is change over time, so the chart is a line chart with one line per region, or, if four regions make a tangle, four small multiples on a shared scale with the region of interest highlighted. Neither is a pie.

The integrity pass catches that an earlier draft started the bar axis at 80 to "show the gap", which tripled the apparent lead; it is reset to zero. The colour that separated regions is backed up with direct labels so a colour-blind reader still follows it, and the titles state the message: "North leads on sales" and "Sales rose through H2." The reader now makes the right comparison in a second, because each chart answers one question in the form that fits it.

## Templates you can use verbatim

**Question to chart worksheet:**

```
Question:      what the reader should learn in one line
Relationship:  change over time | magnitude | ranking | part-to-whole |
               deviation | correlation | distribution | flow | spatial
Data shape:    categories, numeric variables, series, time?, geography?
Chart:         chosen type
Integrity:     bars from zero? single axis? bubble by area? bins checked?
Reduce:        series count ok? sorted? one message?
Accessible:    not colour-only? contrast >= 4.5:1? units labelled?
Title:         states the takeaway, names source and any estimates
```

**Quick rules of thumb:**

```
Trend over time        -> line
Compare categories     -> sorted bar (from zero)
Rank order             -> sorted bar or lollipop
Parts of a total       -> stacked bar (pie only if 2-5 slices)
Two numeric variables  -> scatter
Spread of one variable -> histogram or box (note n)
Single key number      -> big text, not a chart
Location is the point   -> choropleth (rates) or symbol map (totals)
```

## Failure modes and anti-patterns

1. **Pie chart doing a bar chart's job.** A pie with many slices, or used to compare categories, forces angle judgement no one is good at. Spot it when slices are close in size or there are more than five. Fix: a sorted bar chart; keep pies for two to five parts of a genuine whole (Nielsen Norman Group; Domo).
2. **Truncated bar axis.** A bar axis starting above zero exaggerates a small difference into a large one. Spot it from an axis that does not begin at zero. Fix: start bars at zero; if the differences are genuinely tiny, say so in the title rather than inflating them (data-to-viz).
3. **Spaghetti line chart.** A dozen overlapping lines so no single series can be followed. Spot it from a crowded legend. Fix: highlight one line and grey the rest, or split into small multiples on a shared scale (data-to-viz).
4. **Dual-axis correlation.** Two series on two different y-axes positioned to look like they move together. Spot it from a second axis on the right. Fix: index both to a common base, or use two stacked panels, and let the reader judge (data-to-viz).
5. **Colour as the only signal.** Series or status told apart only by hue, lost for a colour-blind reader or in greyscale, or a rainbow scale on a numeric variable. Spot it by converting to greyscale. Fix: add direct labels or patterns, use a colour-blind-safe sequential scale (data-to-viz).

## Quality bar

- The relationship the chart shows is named, and the chart type is the standard fit for that relationship and data shape.
- Bar charts start at zero; line charts are used for trends; a pie appears only for two to five parts of a whole.
- There is a single y-axis, bubbles are scaled by area, and histogram bins were checked at more than one width.
- The chart makes one comparison easy: bars are sorted, series are limited or a single one is highlighted, and labels are direct where possible.
- Colour is not the only way to tell elements apart, the palette is colour-blind-safe, and contrast is at least 4.5:1.
- Axes and units are labelled, the source is shown, and estimated or projected values are marked.
- No data point, trend or benchmark was invented, and the title states the real takeaway without overstating it.

## Data handling and safety

Charts can expose individuals: a scatter plot of a small group, or a map with few points, can identify a person even when the table felt anonymous. Aggregate or suppress small cells before plotting personal data, and do not paste raw records or credentials into a prompt to make a chart. Never fabricate data points, a trend line or a benchmark to fill a chart, and never truncate an axis, drop inconvenient points or pick a bin width to push a conclusion; those are the quiet ways a correct dataset becomes a misleading picture. Mark projected or modelled values clearly so they are not read as observed. When a chart informs decisions about health, money, legal standing or employment, state the data source and the date, flag anything version-dependent with a "verify before relying on this" note, and keep a human in the loop on the conclusion drawn from it.

## Appendix: tool-specific notes (verify before relying on these)

- **Excel and Google Sheets:** default bar charts usually start at zero, but a manually set axis minimum can truncate them, so check it. Avoid the built-in 3D and radar types for analysis. Use a line chart, not a "smoothed" line, so the data is not distorted between points.
- **matplotlib and seaborn (Python):** `plt.bar` does not force a zero baseline when you set `ylim`, so set the bar axis to start at zero yourself. `seaborn` has colour-blind-safe palettes (`sns.color_palette("colorblind")`). For overplotted scatter plots use `alpha`, hexbin or a 2D density. For histograms, vary `bins` and inspect.
- **plotly and other interactive libraries:** tooltips reduce the need for a dense legend, but keep direct labels for the static or printed view. Dual-axis figures are easy to make and easy to mislead with, so prefer indexed series.
- **Datawrapper and Flourish:** both offer a chart chooser keyed to the relationship, colour-blind checks and honest defaults; they are a good cross-check, but the choice of relationship is still yours.
- **BI tools (Power BI, Tableau, Looker):** set a shared theme so palettes stay colour-blind-safe and consistent; see `dashboard-design` for how these charts sit together on a screen.

## Sources

- Financial Times, *Visual Vocabulary* (ft-interactive, poster and the Royal Statistical Society reproduction): the nine relationship families (deviation, correlation, ranking, distribution, change over time, magnitude, part-to-whole, spatial, flow) and the chart types that belong to each. Verified 2 November 2026.
- Royal Statistical Society, *Best Practices for Data Visualisation* (choosing a visualisation): choose a chart by data type or relationship, weigh the audience's graph literacy when several types fit, and define the purpose before choosing. Verified 2 November 2026.
- data-to-viz, "Caveats" (Yan Holtz and Conor Healy): start bars from a baseline and sort them, avoid pies and spaghetti line charts, avoid dual axes, scale bubbles by area not radius, vary histogram bins, avoid rainbow palettes for numeric scales, and the fourteen-group legend warning. Verified 2 November 2026.
- Nielsen Norman Group, dashboard and data-visualisation guidance: 2D position and length suit quantitative data, bars should be sorted, colour should not encode magnitude, and pie, donut, gauge and 3D charts should be avoided for fast reading. Verified 2 November 2026.
- Flourish, "How to choose the right chart type for your data": worked mapping from purpose (change over time, magnitude, part-to-whole, correlation, ranking, distribution, flow, spatial) to specific chart types. Verified 2 November 2026.
- Cole Nussbaumer Knaflic, *Storytelling with Data*: use a single large number for one key figure, title the chart with its takeaway, and declutter so one comparison stands out. Verified 2 November 2026.
- Domo, "Top 10 dashboard design mistakes": bars must start at zero and pie charts suit only two to five parts of a whole. Verified 2 November 2026.

The workflow, step by step

1. Name the relationship the chart must show

Map the question to one of nine relationship families (Financial Times, *Visual Vocabulary*):

  • Change over time: a trend across dates or periods.
  • Magnitude: comparing the size of counted values across categories.
  • Ranking: where an item sits in an ordered list matters more than its exact value.
  • Part-to-whole: how one total breaks into components.
  • Deviation: variation above or below a reference such as zero, a target or an average.
  • Correlation: whether two or more variables move together.
  • Distribution: how values are spread and how often each occurs.
  • Flow: movement or transfer between states or places.
  • Spatial: where location or geographic pattern is the point.

Decision rule: if you cannot name the relationship, you are not ready to pick a chart. Most "which chart" mistakes are really "which relationship" mistakes.

2. Read the shape of the data

Note the number of variables and their types: one categorical and one numeric (a comparison), two numeric (a correlation or a distribution), a time column plus one or many series, a categorical breakdown that sums to a total (part-to-whole), or coordinates and a region (spatial). The shape narrows the family to a specific chart.

3. Pick the chart from the relationship and the shape

RelationshipDefault chartNotes
Change over timeLine chartOne line per series; for a few periods a column chart also works
Magnitude (compare categories)Bar chart, sortedHorizontal bars when labels are long; bar axis starts at zero
RankingSorted bar, or a dot/lollipopSort by value, not alphabetically; bar-chart race for rank over time
Part-to-wholeStacked bar, or a pie for 2 to 5 slices onlyStacked bar beats pie for comparing parts; use a treemap for many nested parts
DeviationDiverging bar from a zero or target lineDiverging stacked bar for agree/disagree survey data
CorrelationScatter plotAdd a trend line only when a relationship is real; bubble for a third value
Distribution (one variable)Histogram, or a box/violin plotTry several bin widths; a box plot hides sample size, so note n
Distribution (compare groups)Small multiples, strip or beeswarmKeep a shared scale across panels
FlowSankey diagramFor movement between states, stages or places
SpatialChoropleth for rates, proportional symbol for totalsUse a map only when location is the real question

When several charts fit, choose the one the audience reads most easily (Royal Statistical Society). A single key number is often clearest as large text, not a chart at all (Nussbaumer Knaflic, *Storytelling with Data*).

4. Apply the integrity rules before you draw

These stop a technically valid chart from misleading (data-to-viz, "Caveats"; Nielsen Norman Group):

  • Bars start at zero. A bar's length is its value, so a truncated axis exaggerates a difference. A line chart need not start at zero, because it reads position, not length.
  • One y-axis. Avoid dual y-axes; they imply a correlation the data may not support. Index both series to a common base, or use two stacked panels.
  • Scale bubbles by area, not radius. Radius scaling overstates large values several times over.
  • Try more than one histogram bin width. Different bins can suggest different stories, so check the shape is stable.
  • Sort bars by value, not by label, unless the categories have a natural order (such as age bands).

5. Reduce to one message

A chart should make one comparison easy. Too many lines becomes a "spaghetti" chart no one can read: keep to about five to seven series, and above that highlight one line and grey the rest, or use small multiples (data-to-viz; Nussbaumer Knaflic). A legend with many entries is a warning sign; data-to-viz suggests worrying once you reach fourteen groups. Prefer labelling series directly over forcing the eye to a legend and back.

6. Make it accessible

  • Do not rely on colour alone to tell series apart; add direct labels, patterns or position, because about one in twelve men has reduced colour vision.
  • Use a colour-blind-safe palette and keep text and key elements at WCAG 4.5:1 contrast or better.
  • Avoid the rainbow palette for a numeric scale; use a single-hue sequential scale, and a diverging scale only around a meaningful midpoint (data-to-viz).
  • Write the axis labels and units in full; never leave a reader guessing what a number measures.

7. Title and label honestly

Give the chart a title that states the takeaway, not just the subject: "West Coast drove Q4 growth" rather than "Sales 2024" (Nussbaumer Knaflic). Label units and the data source, and mark any estimated or projected values so they are not read as observed.

8. Verify against the quality bar

Run the finished chart against the quality bar below. Every item is checkable.

Worked example, end to end

A team asks to "visualise our sales." The question is actually two: which regions sell most, and how total sales changed over the year. The obvious move draws a pie of regions and a second pie for last year, so the reader squints at angles and cannot compare the two.

Naming the relationships fixes it. "Which region sells most" is magnitude, so the chart is a bar chart sorted high to low, axis starting at zero, with the top region first. "How did sales change over the year" is change over time, so the chart is a line chart with one line per region, or, if four regions make a tangle, four small multiples on a shared scale with the region of interest highlighted. Neither is a pie.

The integrity pass catches that an earlier draft started the bar axis at 80 to "show the gap", which tripled the apparent lead; it is reset to zero. The colour that separated regions is backed up with direct labels so a colour-blind reader still follows it, and the titles state the message: "North leads on sales" and "Sales rose through H2." The reader now makes the right comparison in a second, because each chart answers one question in the form that fits it.

Templates you can use verbatim

Question to chart worksheet:

Question:      what the reader should learn in one line
Relationship:  change over time | magnitude | ranking | part-to-whole |
               deviation | correlation | distribution | flow | spatial
Data shape:    categories, numeric variables, series, time?, geography?
Chart:         chosen type
Integrity:     bars from zero? single axis? bubble by area? bins checked?
Reduce:        series count ok? sorted? one message?
Accessible:    not colour-only? contrast >= 4.5:1? units labelled?
Title:         states the takeaway, names source and any estimates

Quick rules of thumb:

Trend over time        -> line
Compare categories     -> sorted bar (from zero)
Rank order             -> sorted bar or lollipop
Parts of a total       -> stacked bar (pie only if 2-5 slices)
Two numeric variables  -> scatter
Spread of one variable -> histogram or box (note n)
Single key number      -> big text, not a chart
Location is the point   -> choropleth (rates) or symbol map (totals)

Failure modes and anti-patterns

  1. Pie chart doing a bar chart's job. A pie with many slices, or used to compare categories, forces angle judgement no one is good at. Spot it when slices are close in size or there are more than five. Fix: a sorted bar chart; keep pies for two to five parts of a genuine whole (Nielsen Norman Group; Domo).
  2. Truncated bar axis. A bar axis starting above zero exaggerates a small difference into a large one. Spot it from an axis that does not begin at zero. Fix: start bars at zero; if the differences are genuinely tiny, say so in the title rather than inflating them (data-to-viz).
  3. Spaghetti line chart. A dozen overlapping lines so no single series can be followed. Spot it from a crowded legend. Fix: highlight one line and grey the rest, or split into small multiples on a shared scale (data-to-viz).
  4. Dual-axis correlation. Two series on two different y-axes positioned to look like they move together. Spot it from a second axis on the right. Fix: index both to a common base, or use two stacked panels, and let the reader judge (data-to-viz).
  5. Colour as the only signal. Series or status told apart only by hue, lost for a colour-blind reader or in greyscale, or a rainbow scale on a numeric variable. Spot it by converting to greyscale. Fix: add direct labels or patterns, use a colour-blind-safe sequential scale (data-to-viz).

Quality bar

  • The relationship the chart shows is named, and the chart type is the standard fit for that relationship and data shape.
  • Bar charts start at zero; line charts are used for trends; a pie appears only for two to five parts of a whole.
  • There is a single y-axis, bubbles are scaled by area, and histogram bins were checked at more than one width.
  • The chart makes one comparison easy: bars are sorted, series are limited or a single one is highlighted, and labels are direct where possible.
  • Colour is not the only way to tell elements apart, the palette is colour-blind-safe, and contrast is at least 4.5:1.
  • Axes and units are labelled, the source is shown, and estimated or projected values are marked.
  • No data point, trend or benchmark was invented, and the title states the real takeaway without overstating it.

Data handling and safety

Charts can expose individuals: a scatter plot of a small group, or a map with few points, can identify a person even when the table felt anonymous. Aggregate or suppress small cells before plotting personal data, and do not paste raw records or credentials into a prompt to make a chart. Never fabricate data points, a trend line or a benchmark to fill a chart, and never truncate an axis, drop inconvenient points or pick a bin width to push a conclusion; those are the quiet ways a correct dataset becomes a misleading picture. Mark projected or modelled values clearly so they are not read as observed. When a chart informs decisions about health, money, legal standing or employment, state the data source and the date, flag anything version-dependent with a "verify before relying on this" note, and keep a human in the loop on the conclusion drawn from it.

Appendix: tool-specific notes (verify before relying on these)

  • Excel and Google Sheets: default bar charts usually start at zero, but a manually set axis minimum can truncate them, so check it. Avoid the built-in 3D and radar types for analysis. Use a line chart, not a "smoothed" line, so the data is not distorted between points.
  • matplotlib and seaborn (Python): plt.bar does not force a zero baseline when you set ylim, so set the bar axis to start at zero yourself. seaborn has colour-blind-safe palettes (sns.color_palette("colorblind")). For overplotted scatter plots use alpha, hexbin or a 2D density. For histograms, vary bins and inspect.
  • plotly and other interactive libraries: tooltips reduce the need for a dense legend, but keep direct labels for the static or printed view. Dual-axis figures are easy to make and easy to mislead with, so prefer indexed series.
  • Datawrapper and Flourish: both offer a chart chooser keyed to the relationship, colour-blind checks and honest defaults; they are a good cross-check, but the choice of relationship is still yours.
  • BI tools (Power BI, Tableau, Looker): set a shared theme so palettes stay colour-blind-safe and consistent; see dashboard-design for how these charts sit together on a screen.

Sources

  • Financial Times, *Visual Vocabulary* (ft-interactive, poster and the Royal Statistical Society reproduction): the nine relationship families (deviation, correlation, ranking, distribution, change over time, magnitude, part-to-whole, spatial, flow) and the chart types that belong to each. Verified 2 November 2026.
  • Royal Statistical Society, *Best Practices for Data Visualisation* (choosing a visualisation): choose a chart by data type or relationship, weigh the audience's graph literacy when several types fit, and define the purpose before choosing. Verified 2 November 2026.
  • data-to-viz, "Caveats" (Yan Holtz and Conor Healy): start bars from a baseline and sort them, avoid pies and spaghetti line charts, avoid dual axes, scale bubbles by area not radius, vary histogram bins, avoid rainbow palettes for numeric scales, and the fourteen-group legend warning. Verified 2 November 2026.
  • Nielsen Norman Group, dashboard and data-visualisation guidance: 2D position and length suit quantitative data, bars should be sorted, colour should not encode magnitude, and pie, donut, gauge and 3D charts should be avoided for fast reading. Verified 2 November 2026.
  • Flourish, "How to choose the right chart type for your data": worked mapping from purpose (change over time, magnitude, part-to-whole, correlation, ranking, distribution, flow, spatial) to specific chart types. Verified 2 November 2026.
  • Cole Nussbaumer Knaflic, *Storytelling with Data*: use a single large number for one key figure, title the chart with its takeaway, and declutter so one comparison stands out. Verified 2 November 2026.
  • Domo, "Top 10 dashboard design mistakes": bars must start at zero and pie charts suit only two to five parts of a whole. Verified 2 November 2026.

When to use this skill, and when not to

Use this skill whenever the task is to turn a number or a table into a single chart and the right chart type is in question. It fires on “which chart should I use”, “what is the best way to visualise this”, “bar or line”, “is a pie chart alright”, “plot this”, or “this chart looks misleading”. The work is to match the chart to the question and the data shape, then check it does not distort. Do not use it to lay out a whole dashboard, which is dashboard-design, or to write a report, which is data-storytelling.

Who it is for

Analysts, data scientists, report writers and anyone using an AI agent to plot a figure for a dashboard, a document or a slide. You bring the numbers and the question; the skill picks the chart and checks it reads honestly.

What is inside

An eight-step workflow with a decision table, not vague advice. It covers naming the relationship from the nine families, reading the data shape, picking the chart from relationship and shape, the integrity rules (bars from zero, one y-axis, bubble by area, histogram bins), reducing to one message, an accessibility pass, honest titles and labels, and a verification step. It ends with a quality bar, a safety section and a tool appendix for Excel and Sheets, matplotlib and seaborn, plotly, Datawrapper and Flourish, and BI tools.

Example prompts

“Which chart should I use for sales by region?” “Bar or line for this trend?” “Is a pie chart alright for these ten categories?” “My chart looks misleading, what is wrong with it?”

Example output

The skill returns a chart choice with the reasoning stated: the relationship the chart shows, the chart type that fits it and the data shape, the integrity fixes applied (a zero baseline, a single axis), the reduction to one message, and an honest title. It refuses to invent data points or truncate an axis to make a difference look bigger.

What the agent needs from you

The question the chart should answer, the shape of the data (which columns are categorical or numeric, how many series, whether there is a time or geography axis), whether the values are counts, rates or parts of a whole, the audience and medium, and the real numbers. It will not fabricate a data point, a trend or a benchmark to fill a chart.

How to install and use it

In the Claude apps, download the SKILL.md from this page, put it in a folder named chart-selection, and upload that folder. In Claude Code, Codex and other Agent Skills tools, copy the folder into your skills directory. Then ask the agent which chart to use, or to plot your data, and it loads the skill on its own.

How to choose a chart step by step

Install the skill as chart-selection/SKILL.md. Tell the agent the question the chart must answer and give it the data. The agent names the relationship from the nine families, reads the data shape, picks the chart from the decision table, applies the integrity rules so bars start at zero and no dual axis implies a false correlation, reduces the chart to one clear comparison, runs an accessibility pass so colour is never the only signal, and titles the chart with its takeaway before handing it back.

Worked example

Asked to “visualise our sales”, the obvious move draws a pie of regions and a second pie for last year, so the reader squints at angles. Naming the relationships fixes it: “which region sells most” is magnitude, so a sorted bar chart with the axis at zero; “how did sales change” is change over time, so a line chart, or small multiples if four regions tangle. The integrity pass catches a bar axis that started at 80 and resets it to zero, colour is backed with direct labels, and the titles state the message. The reader now makes the right comparison in a second.

Situations this skill handles

SituationWhat the skill does
A pie with many slicesSwitches to a sorted bar chart; keeps pies for two to five parts of a real whole
A bar axis that starts above zeroResets the baseline to zero so the difference is not exaggerated
A dozen overlapping linesHighlights one line and greys the rest, or splits into small multiples
Two series on two y-axesIndexes both to a common base or uses two panels, so no false correlation
Series told apart by colour aloneAdds direct labels or patterns and a colour-blind-safe palette

What makes this skill different

Most chart guides give a gallery and leave the choice to taste. This skill gives a decision procedure: name the relationship, read the data shape, pick from a table, then a fixed set of integrity and accessibility checks that a correct chart must pass. It says when a pie is acceptable and when it is not, instead of a blanket ban, and it ends with a checkable quality bar. It is tool-agnostic, with the library-specific traps kept in an appendix.

Common mistakes

A pie doing a bar chart’s job; a truncated bar axis that inflates a small gap; a spaghetti line chart no one can read; two series on dual axes implying a correlation; and colour as the only signal, lost in greyscale or for a colour-blind reader. Each has a tell and a fix in the skill, from the greyscale check to the zero-baseline rule.

Pair it with dashboard-design, which decides how these charts sit together on a screen, and data-storytelling, which builds a narrative around them. For the analysis that produces the numbers, see the data-analysis skills: descriptive-statistics, correlation-analysis, data-distributions and time-series-exploration.

Frequently asked questions

Yes, but only for parts of a genuine whole and only with about two to five slices. Beyond that people cannot judge the angles, so a sorted bar chart compares the parts far more clearly. If you are comparing categories rather than showing shares of a total, do not use a pie at all.

Yes. A bar’s length represents its value, so starting the axis above zero exaggerates the difference between bars. A line chart is the exception: it reads position rather than length, so it does not need a zero baseline, though you should still pick a sensible range.

Use a line chart for a trend over time and a bar chart to compare values across categories. If the question is how did this change, that is a line; if it is which is biggest, that is a sorted bar. A few time periods can also work as columns.

About five to seven before it becomes a tangle. Past that, highlight the one line that matters and grey the rest, or split the series into small multiples on a shared scale. A crowded legend is the warning sign.

A scatter plot, with each point one observation. Add a trend line only when a relationship is genuinely there, and use a bubble chart sized by area, not radius, if a third value matters. For many overlapping points, use transparency or a density plot.

The usual causes are a truncated axis, a dual axis forcing a correlation, a pie with too many slices, or colour standing in for a quantity. Check that bars start at zero, there is one y-axis, parts of a whole sum to the total, and nothing relies on colour alone.

Changelog

1.0.0, 2 November 2026: first release. Use, adapt and share this skill under CC BY 4.0: credit Afeez Adebayo and link to this page.