Which data visualisation type should I use?

Which data visualisation type should I use?

Elimination matrix dataanalyticsdata visualisationreportingbusiness intelligence

Quickly identify the most effective chart or visualisation type for your dataset. Answer questions about your data's shape, what story you want to tell, and whether geography plays a role to narrow down to the best option.

Overview

Type
Elimination matrix
Tags
data, analytics, data visualisation, reporting, business intelligence
Entry
Q1
Questions
15
Outcomes
6
Author
Andrew
Last updated
2026-05-12

Decision Tree

Start: Are you showing how a metric changes over time?

A: YES — time is the primary dimension

  • Outcome: Line Chart
  • Outcome: Table / Heatmap

B: NO — I am not focused on a time series

  • Outcome: Bar / Column Chart
  • Outcome: Scatter Plot
  • Outcome: Pie / Donut Chart
  • Outcome: Map / Geospatial
  • Outcome: Table / Heatmap

Machine-Readable JSON (Canonical Model)

View JSON
{
  "_meta": {
    "schema": "https://www.drawdecisiontree.com/decision-dag.schema.json",
    "source": "https://www.drawdecisiontree.com",
    "description": "DrawDecisionTree.com is a free tool for building, sharing, and embedding interactive decision trees. This file is the machine-readable export of a published decision tree. The `dsl` field contains the original source in the Decision DAG DSL; the `dag` schema is documented at the URL in `schema` above.",
    "links": {
      "interactive": "https://www.drawdecisiontree.com/t/drawdecisiontree/data-visualisation-type.html",
      "embed": "https://www.drawdecisiontree.com/embed/path/drawdecisiontree/data-visualisation-type",
      "dsl_reference": "https://www.drawdecisiontree.com/decision-tree-dsl-reference.html",
      "guides": "https://www.drawdecisiontree.com/guides",
      "schema_docs": "https://www.drawdecisiontree.com/decision-dag.schema.json",
      "author_trees": "https://www.drawdecisiontree.com/trees/drawdecisiontree"
    },
    "generated_at": "2026-05-29T12:05:39.273Z"
  },
  "author": {
    "handle": "drawdecisiontree",
    "first_name": "Andrew",
    "last_name": null,
    "avatar_url": "1d32d828-b6ca-40ec-bdd7-771fe7b9c36a/avatar-1778531481027.svg",
    "display_name": "Andrew"
  },
  "file": {
    "id": "755e8283-7213-4bd6-9028-cff35e2bc949",
    "name": "Which data visualisation type should I use?",
    "public_slug": "data-visualisation-type",
    "updated_at": "2026-05-12T16:53:43.587978+00:00",
    "url": "https://www.drawdecisiontree.com/t/drawdecisiontree/data-visualisation-type.html",
    "json_url": "https://www.drawdecisiontree.com/t/drawdecisiontree/data-visualisation-type/tree.json",
    "dsl_url": "https://www.drawdecisiontree.com/t/drawdecisiontree/data-visualisation-type/tree.dag"
  },
  "meta": {
    "description": "Quickly identify the most effective chart or visualisation type for your dataset. Answer questions about your data's shape, what story you want to tell, and whether geography plays a role to narrow down to the best option.",
    "mode": "elimination",
    "entry": "Q1",
    "tags": [
      "data",
      "analytics",
      "data visualisation",
      "reporting",
      "business intelligence"
    ],
    "image": "https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=1200&q=80"
  },
  "questions": [
    {
      "id": "Q1",
      "text": "Are you showing how a metric changes over time?"
    },
    {
      "id": "A",
      "text": "YES — time is the primary dimension [LINE, TABLE_HEAT]"
    },
    {
      "id": "B",
      "text": "NO — I am not focused on a time series [BAR, SCATTER, PIE, MAP, TABLE_HEAT]"
    },
    {
      "id": "Q2",
      "text": "Are you comparing values across distinct categories or groups?"
    },
    {
      "id": "A",
      "text": "YES — I need to compare named categories [BAR, PIE, TABLE_HEAT]"
    },
    {
      "id": "B",
      "text": "NO — comparison across named groups is not the goal [SCATTER, MAP, TABLE_HEAT]"
    },
    {
      "id": "Q3",
      "text": "Does geography or physical location matter in your data?"
    },
    {
      "id": "A",
      "text": "YES — location is a meaningful dimension [MAP]"
    },
    {
      "id": "B",
      "text": "NO — geography is not relevant [BAR, LINE, SCATTER, PIE, TABLE_HEAT]"
    },
    {
      "id": "Q4",
      "text": "Are you exploring the relationship or correlation between two numeric variables?"
    },
    {
      "id": "A",
      "text": "YES — I want to reveal correlation or distribution [SCATTER]"
    },
    {
      "id": "B",
      "text": "NO — correlation is not the primary goal [BAR, LINE, PIE, TABLE_HEAT]"
    },
    {
      "id": "Q5",
      "text": "Do you need to show part-to-whole proportions with fewer than 7 segments?"
    },
    {
      "id": "A",
      "text": "YES — I want to show proportional share [PIE]"
    },
    {
      "id": "B",
      "text": "NO — proportions are not the story [BAR, LINE, TABLE_HEAT]"
    }
  ],
  "outcomes": [
    {
      "id": "BAR",
      "label": "Bar / Column Chart"
    },
    {
      "id": "LINE",
      "label": "Line Chart"
    },
    {
      "id": "SCATTER",
      "label": "Scatter Plot"
    },
    {
      "id": "PIE",
      "label": "Pie / Donut Chart"
    },
    {
      "id": "TABLE_HEAT",
      "label": "Table / Heatmap"
    },
    {
      "id": "MAP",
      "label": "Map / Geospatial"
    }
  ],
  "dsl": "dag: Which data visualisation type should I use?\nversion: 1.0.0\nimage: https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=1200&q=80\ndescription: Quickly identify the most effective chart or visualisation type for your dataset. Answer questions about your data's shape, what story you want to tell, and whether geography plays a role to narrow down to the best option.\ntags: data, analytics, data visualisation, reporting, business intelligence\nentry: Q1\nmode: elimination\n\nQ1: Are you showing how a metric changes over time?\n  hint: Choose YES if the x-axis would represent dates, times, or ordered time periods — e.g. weekly sales, daily active users, or monthly revenue trends. If you are comparing discrete groups without a temporal dimension, choose NO. Time-series data has an inherent ordering that non-temporal charts cannot exploit, so getting this distinction right early prevents fundamental chart-type mismatches.\n  A: YES — time is the primary dimension [LINE, TABLE_HEAT]\n  B: NO — I am not focused on a time series [BAR, SCATTER, PIE, MAP, TABLE_HEAT]\n\nQ2: Are you comparing values across distinct categories or groups?\n  hint: Categories are discrete, named groups such as product lines, regions, or departments. If you are looking for a relationship or correlation between two numeric variables rather than comparing named groups, lean towards NO. Ask yourself: would each bar or column have a label that is a name, not a number? That is the clearest signal that a categorical comparison chart is appropriate.\n  A: YES — I need to compare named categories [BAR, PIE, TABLE_HEAT]\n  B: NO — comparison across named groups is not the goal [SCATTER, MAP, TABLE_HEAT]\n\nQ3: Does geography or physical location matter in your data?\n  hint: Choose YES if your dataset includes coordinates, postcodes, country codes, or any dimension that maps naturally onto a physical map — e.g. sales by country, delivery routes, or store locations. Choose NO if location is not a meaningful variable. Even if region is a column in your data, that does not automatically mean a map is better than a bar chart — only use a map when the spatial relationship itself carries analytical meaning.\n  A: YES — location is a meaningful dimension [MAP]\n  B: NO — geography is not relevant [BAR, LINE, SCATTER, PIE, TABLE_HEAT]\n\nQ4: Are you exploring the relationship or correlation between two numeric variables?\n  hint: A classic scatter plot scenario is plotting marketing spend (x) against revenue (y) across many records to see if a pattern emerges. If each data point is an individual observation with two or more measurable attributes, a scatter plot will reveal clusters, outliers, and trends that bar or line charts cannot. Consider adding a regression line or colour-coding by segment to extract even more signal from the same visual.\n  A: YES — I want to reveal correlation or distribution [SCATTER]\n  B: NO — correlation is not the primary goal [BAR, LINE, PIE, TABLE_HEAT]\n\nQ5: Do you need to show part-to-whole proportions with fewer than 7 segments?\n  hint: Pie and donut charts work well when you have a small number of clearly differentiated segments that together sum to 100% — e.g. market share split between three competitors. Avoid them for more than 6 slices or when precise comparison between segments is critical, as human perception of angle differences is weak. If you find yourself with many thin slices, a stacked bar chart or treemap will communicate the same proportional story far more accurately.\n  A: YES — I want to show proportional share [PIE]\n  B: NO — proportions are not the story [BAR, LINE, TABLE_HEAT]\n\n[BAR]: Bar / Column Chart\n  color: #4F86C6\n  description: The workhorse of data visualisation, ideal for comparing discrete categories side by side. Use vertical bars (column chart) when category labels are short; switch to horizontal bars when labels are long or you have many categories. Group bars to compare sub-categories, or stack them to show composition. Start with this chart whenever you need a clear, accessible comparison that non-technical audiences can immediately interpret — then layer in colour encoding to highlight the most important category.\n  code: VIZ_BAR\n\n[LINE]: Line Chart\n  color: #48BB78\n  description: The natural choice for displaying trends, momentum, and seasonality across an ordered time axis. Each data series becomes a line, making it easy to compare multiple metrics or cohorts over the same period. Use smooth curves for continuous data and stepped lines for discrete state changes. Annotate inflection points directly on the chart to call out events that drove notable shifts, and consider a dual-axis variant only when two series with very different scales must be shown together.\n  code: VIZ_LINE\n\n[SCATTER]: Scatter Plot\n  color: #ED8936\n  description: Best for revealing correlations, clusters, and outliers between two continuous numeric variables. Each dot represents a single observation plotted at its (x, y) coordinates, and colour or size encoding can add a third or fourth dimension. Add a trend line (OLS or LOESS) to make the direction and strength of a relationship explicit. Consider a bubble chart variant when a third numeric variable — such as sample size — also needs encoding, and always check for overplotting by using transparency or hexbin aggregation on large datasets.\n  code: VIZ_SCATTER\n\n[PIE]: Pie / Donut Chart\n  color: #9F7AEA\n  description: Effective for communicating simple part-to-whole relationships when you have six or fewer segments with meaningfully different sizes. The donut variant frees up the centre for a summary KPI label. Always include percentage labels on each slice since readers cannot accurately judge arc angles. If any segment is smaller than 5%, collapse it into an \"Other\" category or switch to a bar chart for better precision — and never use 3D pie charts, which systematically distort perceptual area judgements.\n  code: VIZ_PIE\n\n[TABLE_HEAT]: Table / Heatmap\n  color: #F6AD55\n  description: Use a table when your audience needs to look up exact values rather than perceive a visual trend, or when you have many dimensions that cannot be collapsed into a single chart axis. Upgrade a plain table to a heatmap by applying a colour gradient to cells — this preserves precise numbers while adding visual salience to high and low values. Heatmaps are particularly powerful for correlation matrices, time-of-day patterns, and cohort retention analysis. Always sort rows or columns by a meaningful metric to surface the most important patterns immediately.\n  code: VIZ_TABLE_HEAT\n\n[MAP]: Map / Geospatial\n  color: #38B2AC\n  description: The right choice whenever physical or administrative geography is a meaningful dimension of your data. Choropleth maps shade regions by a metric such as revenue per country; point maps plot individual locations such as store sites or delivery drops; flow maps show movement between origin and destination. Always normalise by population or area when comparing regions of vastly different sizes to avoid misleading your audience. Use tools like Mapbox, Deck.gl, or Kepler.gl for interactive geospatial exploration, and consider Hex binning for dense point datasets.\n  code: VIZ_MAP\n"
}

DSL Representation

dag: Which data visualisation type should I use?
version: 1.0.0
image: https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=1200&q=80
description: Quickly identify the most effective chart or visualisation type for your dataset. Answer questions about your data's shape, what story you want to tell, and whether geography plays a role to narrow down to the best option.
tags: data, analytics, data visualisation, reporting, business intelligence
entry: Q1
mode: elimination

Q1: Are you showing how a metric changes over time?
  hint: Choose YES if the x-axis would represent dates, times, or ordered time periods — e.g. weekly sales, daily active users, or monthly revenue trends. If you are comparing discrete groups without a temporal dimension, choose NO. Time-series data has an inherent ordering that non-temporal charts cannot exploit, so getting this distinction right early prevents fundamental chart-type mismatches.
  A: YES — time is the primary dimension [LINE, TABLE_HEAT]
  B: NO — I am not focused on a time series [BAR, SCATTER, PIE, MAP, TABLE_HEAT]

Q2: Are you comparing values across distinct categories or groups?
  hint: Categories are discrete, named groups such as product lines, regions, or departments. If you are looking for a relationship or correlation between two numeric variables rather than comparing named groups, lean towards NO. Ask yourself: would each bar or column have a label that is a name, not a number? That is the clearest signal that a categorical comparison chart is appropriate.
  A: YES — I need to compare named categories [BAR, PIE, TABLE_HEAT]
  B: NO — comparison across named groups is not the goal [SCATTER, MAP, TABLE_HEAT]

Q3: Does geography or physical location matter in your data?
  hint: Choose YES if your dataset includes coordinates, postcodes, country codes, or any dimension that maps naturally onto a physical map — e.g. sales by country, delivery routes, or store locations. Choose NO if location is not a meaningful variable. Even if region is a column in your data, that does not automatically mean a map is better than a bar chart — only use a map when the spatial relationship itself carries analytical meaning.
  A: YES — location is a meaningful dimension [MAP]
  B: NO — geography is not relevant [BAR, LINE, SCATTER, PIE, TABLE_HEAT]

Q4: Are you exploring the relationship or correlation between two numeric variables?
  hint: A classic scatter plot scenario is plotting marketing spend (x) against revenue (y) across many records to see if a pattern emerges. If each data point is an individual observation with two or more measurable attributes, a scatter plot will reveal clusters, outliers, and trends that bar or line charts cannot. Consider adding a regression line or colour-coding by segment to extract even more signal from the same visual.
  A: YES — I want to reveal correlation or distribution [SCATTER]
  B: NO — correlation is not the primary goal [BAR, LINE, PIE, TABLE_HEAT]

Q5: Do you need to show part-to-whole proportions with fewer than 7 segments?
  hint: Pie and donut charts work well when you have a small number of clearly differentiated segments that together sum to 100% — e.g. market share split between three competitors. Avoid them for more than 6 slices or when precise comparison between segments is critical, as human perception of angle differences is weak. If you find yourself with many thin slices, a stacked bar chart or treemap will communicate the same proportional story far more accurately.
  A: YES — I want to show proportional share [PIE]
  B: NO — proportions are not the story [BAR, LINE, TABLE_HEAT]

[BAR]: Bar / Column Chart
  color: #4F86C6
  description: The workhorse of data visualisation, ideal for comparing discrete categories side by side. Use vertical bars (column chart) when category labels are short; switch to horizontal bars when labels are long or you have many categories. Group bars to compare sub-categories, or stack them to show composition. Start with this chart whenever you need a clear, accessible comparison that non-technical audiences can immediately interpret — then layer in colour encoding to highlight the most important category.
  code: VIZ_BAR

[LINE]: Line Chart
  color: #48BB78
  description: The natural choice for displaying trends, momentum, and seasonality across an ordered time axis. Each data series becomes a line, making it easy to compare multiple metrics or cohorts over the same period. Use smooth curves for continuous data and stepped lines for discrete state changes. Annotate inflection points directly on the chart to call out events that drove notable shifts, and consider a dual-axis variant only when two series with very different scales must be shown together.
  code: VIZ_LINE

[SCATTER]: Scatter Plot
  color: #ED8936
  description: Best for revealing correlations, clusters, and outliers between two continuous numeric variables. Each dot represents a single observation plotted at its (x, y) coordinates, and colour or size encoding can add a third or fourth dimension. Add a trend line (OLS or LOESS) to make the direction and strength of a relationship explicit. Consider a bubble chart variant when a third numeric variable — such as sample size — also needs encoding, and always check for overplotting by using transparency or hexbin aggregation on large datasets.
  code: VIZ_SCATTER

[PIE]: Pie / Donut Chart
  color: #9F7AEA
  description: Effective for communicating simple part-to-whole relationships when you have six or fewer segments with meaningfully different sizes. The donut variant frees up the centre for a summary KPI label. Always include percentage labels on each slice since readers cannot accurately judge arc angles. If any segment is smaller than 5%, collapse it into an "Other" category or switch to a bar chart for better precision — and never use 3D pie charts, which systematically distort perceptual area judgements.
  code: VIZ_PIE

[TABLE_HEAT]: Table / Heatmap
  color: #F6AD55
  description: Use a table when your audience needs to look up exact values rather than perceive a visual trend, or when you have many dimensions that cannot be collapsed into a single chart axis. Upgrade a plain table to a heatmap by applying a colour gradient to cells — this preserves precise numbers while adding visual salience to high and low values. Heatmaps are particularly powerful for correlation matrices, time-of-day patterns, and cohort retention analysis. Always sort rows or columns by a meaningful metric to surface the most important patterns immediately.
  code: VIZ_TABLE_HEAT

[MAP]: Map / Geospatial
  color: #38B2AC
  description: The right choice whenever physical or administrative geography is a meaningful dimension of your data. Choropleth maps shade regions by a metric such as revenue per country; point maps plot individual locations such as store sites or delivery drops; flow maps show movement between origin and destination. Always normalise by population or area when comparing regions of vastly different sizes to avoid misleading your audience. Use tools like Mapbox, Deck.gl, or Kepler.gl for interactive geospatial exploration, and consider Hex binning for dense point datasets.
  code: VIZ_MAP

Machine Access

Questions in this decision tree

Possible outcomes

How to use this decision tree

Click "Open interactive version" to step through the questions. Your answers narrow the tree until a recommended outcome is reached. You can also embed this tree on your own site.

More decision trees by Andrew

Which API design pattern is right for my project?
Which API design pattern is right for my project?
Determine the right API design style for your integration scenario.
Authentication Method Selection
Authentication Method Selection
Authentication is a security-critical, high-friction decision to reverse — migrating users from one auth method to another requires coordinated password resets or credential migration campaigns. This tree eliminates methods that don't match your user type, enterprise requirements, and security posture, giving you a clear shortlist before you write a line of code.
Caching Strategy Selection
Caching Strategy Selection
Premature or misapplied caching adds complexity — stale data bugs, invalidation logic, and distributed consistency problems — without solving the actual bottleneck. This tree routes you to the caching pattern that matches your data access profile, so you apply the right tool to the right problem rather than defaulting to Redis for everything.
CI/CD Pipeline Tool Selection
CI/CD Pipeline Tool Selection
Choosing a CI/CD platform is a long-term infrastructure commitment — pipelines accumulate config, custom scripts, and team muscle memory that make switching painful. This tree eliminates tools that don't fit your source control host, infrastructure model, or team scale, leaving only the options genuinely viable for your situation.
Which cloud provider should I use — AWS, Azure, or Google Cloud?
Which cloud provider should I use — AWS, Azure, or Google Cloud?
Answer a few questions to identify the most suitable cloud platform for your workload.
Container Orchestration Platform Selection
Container Orchestration Platform Selection
Container orchestration is foundational infrastructure — the platform you choose shapes how you deploy, scale, network, and operate every service you run. This tree eliminates options that don't match your operational maturity, cloud provider commitment, and workload complexity, so you land on the platform that fits your team today without over-engineering for a scale you haven't reached.