Types of Data Visualization Charts: The Complete Guide
There are about a dozen chart types worth knowing, and they sort cleanly into six jobs. Comparison charts (bar, column, grouped bar, bullet, radar) show which thing is bigger. Trend charts (line, area, sparkline, candlestick) show how a number moves over time. Composition charts (stacked bar, pie, donut, treemap, waterfall) show how a whole breaks into parts. Distribution charts (histogram, box plot, violin, density) show the shape and spread of many values. Relationship charts (scatter, bubble, heatmap, correlation matrix) show whether two variables move together. Spatial and flow charts (choropleth map, symbol map, Sankey, funnel, network graph) show where things are or how they move between states.
Pick by asking one question: what does the reader need to conclude in three seconds? If the answer is "West beat East," use a bar chart. If it is "signups climbed until March then flattened," use a line chart. If it is "enterprise is 60 percent of revenue," use a stacked bar or a treemap. Chart choice is not a style decision, it is a sentence you are trying to make legible. The table below is the fast version.
The Chart Types Table
| Chart | Best for | Data it needs | Fails when |
|---|---|---|---|
| Horizontal bar | Comparing categories, especially with long labels | One categorical, one numeric | More than ~25 bars, or the axis does not start at zero |
| Column (vertical bar) | Comparing values across a few time periods | Ordered category, one numeric | Many periods (use a line instead) |
| Grouped bar | Comparing 2-3 series across categories | Category, series, numeric | More than 3 series per group |
| Stacked bar | Part-to-whole across categories | Category, subcategory, numeric | Reader must compare middle segments |
| 100% stacked bar | Share of mix when totals differ wildly | Same as stacked | Absolute size matters to the decision |
| Line | Trend over continuous time | Ordered time, one or more numeric | Categories are not ordered; too many lines |
| Area | Trend where cumulative volume matters | Time, numeric | Overlapping series hide each other |
| Pie / donut | One share against the whole, 2-4 slices | Category, numeric summing to 100% | 5+ slices, or slices are close in size |
| Histogram | Distribution of one numeric variable | One numeric column, raw rows | Bin width is chosen carelessly |
| Box plot | Comparing distributions across groups | Numeric plus grouping category | Audience does not know how to read quartiles |
| Scatter | Relationship between two numerics | Two numeric columns | Thousands of overplotted points |
| Bubble | Three variables at once | Two numerics plus a size numeric | Size is mapped to radius, not area |
| Heatmap | Density across two categorical axes | Two categoricals, one numeric | Palette is rainbow rather than sequential |
| Treemap | Hierarchical part-to-whole with many parts | Hierarchy, numeric | Precise comparison is required |
| Waterfall | Explaining how a starting number became an ending number | Ordered contributions | Contributions are not additive |
| Funnel | Stage-to-stage drop-off in a fixed sequence | Ordered stages, counts | Stages are not strictly sequential |
| Sankey | Flow between states or systems | Source, target, volume | More than about eight nodes per side |
| Choropleth map | Rates by region | Region key, normalized numeric | Values are raw counts, not per-capita |
| Gauge / bullet | One number against a target | Value plus target | Used for anything other than a single KPI |
Where the Simple Answer Breaks
The clean six-job taxonomy holds until real data arrives. Four cases break it regularly.
Time series that are actually categories. A "monthly revenue" line chart is honest. A "revenue by product" line chart is not, because product has no order, and the line implies the space between two points means something. If reordering the x-axis changes nothing about the meaning, you need bars.
Part-to-whole where the parts overlap. Pie charts assume mutually exclusive slices. Customer tags, feature usage and marketing attribution rarely are: one account uses three features, one deal touched four channels. A pie chart of "features used" that sums to 180 percent is a chart that lies. Use a bar chart of counts, or an UpSet-style intersection view.
Distribution collapsed into an average. Average response time is 4 hours sounds fine. The histogram shows 80 percent of tickets closed in 20 minutes and 6 percent took over three days, and those two populations have nothing to do with each other. Whenever you show a mean, ask whether the underlying distribution is bimodal. If it is, the bar chart of averages is actively misleading and a box plot or histogram is the correct chart.
Correlation dressed as causation. Scatter plots invite a trend line, and a trend line invites a story. Anscombe's quartet, four datasets with identical means, variances and regression lines but wildly different shapes, exists precisely because summary statistics hide structure that the eye catches instantly. Plot the points before you plot the line.
Worked Example: Same Data, Four Charts
Say you have monthly revenue for four regions over 24 months. That single dataset supports four legitimate charts, each answering a different question.
- Which region is biggest right now? Horizontal bar of the latest month, sorted descending. Four bars, sorted, labeled. Done in one second.
- Is growth accelerating? Multi-line chart, 24 points per line, four lines. Use direct labels at the line ends rather than a legend so the reader is not doing a color-matching exercise.
- Is the revenue mix shifting? 100% stacked area over 24 months. Absolute revenue disappears on purpose, which is the point: you want share, not size.
- Why did Q3 miss? Waterfall starting at the Q2 total, one bar per region contribution, ending at the Q3 total. This is the only chart of the four that answers a "why," and it is the one most teams never build.
The lesson is that "what chart should I use for revenue data" is an unanswerable question. Revenue data does not have a chart. A question about revenue data has a chart.
Choosing Between Close Substitutes
Some pairs are genuinely contested, and the guidance is more specific than "it depends."
Bar vs pie. Use pie only when there are two to four slices and one dominates. The human eye compares lengths far better than angles or areas. If you find yourself adding percentage labels to every slice so the chart can be read, the labels are doing the work and a sorted bar chart would do it better.
Line vs area. Use area when the quantity is cumulative or a volume (storage used, tickets in backlog, hours logged). Use line when it is a rate or level (conversion rate, latency, price). Never stack areas for series that can be compared directly, because only the bottom band sits on a flat baseline and every band above it is distorted by the ones below.
Stacked bar vs small multiples. Once you have five or more subcategories, stop stacking. A grid of small charts, one per subcategory, sharing a y-axis, beats a stacked bar for almost every comparison task and costs nothing but space.
Table vs chart. If the reader needs exact values, or there are fewer than about five numbers, use a table. A chart of three numbers is decoration. A table with a small inline bar behind each value, sometimes called a bar-in-table, is often the highest information-density option on a dashboard.
Rules That Apply Regardless of Type
- Start bar axes at zero. Truncating the baseline of a bar chart makes a 3 percent difference look like 300 percent. Line charts may be truncated because they encode position, not length, but say so on the axis.
- Sort by value, not alphabetically, unless the reader will look up a specific category by name.
- Use color to encode, not to decorate. One color for one series is fine. Seven colors for seven bars that are all the same thing is noise. Reserve a highlight color for the one bar the reader is meant to notice.
- Never use rainbow palettes for sequential data. Use a single-hue or two-hue gradient. Rainbow palettes create false boundaries where the hue changes fastest.
- Check contrast and colorblind safety. Roughly 1 in 12 men has some form of red-green color vision deficiency, which is exactly the pair most dashboards use for good and bad. Add a shape, position or label difference alongside color.
- Label directly where you can. A legend forces a lookup on every glance. Text at the end of a line or inside a bar removes it.
- Show n. A percentage without a denominator is not a number, it is a rumor.
A Short Decision Path
- Write the sentence you want the reader to say out loud after three seconds.
- Identify the sentence's shape: comparison, trend, composition, distribution, relationship or flow.
- Count your variables. One numeric is a histogram or a single bar. Two numerics is a scatter. One categorical and one numeric is a bar. Add time and you get a line.
- Count your categories. Under 5 tolerates a pie. Under 25 tolerates bars. Over 25 needs aggregation, a treemap or a heatmap.
- Check the distribution before you commit to an average.
- Remove anything that does not help the sentence: gridlines, 3D effects, drop shadows, redundant legends, the second y-axis.
The second y-axis deserves its own warning. Two series on two different scales in one frame lets you manufacture any crossover point you want by choosing the axis ranges. If two series genuinely need different scales, stack two charts with a shared x-axis instead.
When the Data Lives in Six Different Tools
Chart choice is the easy half. The hard half is that the numbers you want to plot are rarely in one place: revenue is in Stripe, pipeline is in HubSpot, tickets are in Zendesk, usage is in Postgres, and the reason Q3 missed is in a Slack thread nobody exported. Most teams solve the chart problem well and the assembly problem badly, which is why the waterfall explaining the miss never gets built.
Skopx approaches this from the other end. You ask a question in chat across nearly 1,000 connected tools plus your databases, get an answer with citations back to the source records, and when a question turns out to be one you will ask every week, you describe the view you want in a sentence and get an internal console that reads live from those same sources. It reads and it acts, with a click and a confirmation for anything that changes a system of record. If the assembly step is your bottleneck rather than the chart step, that is what Internal Apps is for.
Skopx Team
The Skopx engineering and product team