Deepnote research: our notes on building agents
Get started
← Back to all posts

31 types of graphs and charts (and when to use each)

By Srihari Thyagarajan•

Updated on August 18, 2026

Explore 31 types of graphs and charts, with interactive examples and practical advice on choosing the right visualization for your data.

Illustrative image for blog post

Choosing a chart gets much easier once you know what you want the reader to notice.

Most datasets can be shown in more than one valid way, but each view draws attention to different details. You might want to show which group has the highest value, whether a pattern holds over time, or how much individual measurements vary. A chart that makes one of those things clear may hide another. Choosing well means matching the view to your question while keeping enough context for readers to interpret what they see.

This guide covers 31 types of graphs and charts, grouped by six jobs: comparison, composition, distribution, relationship, change over time, and flow or geography. Each one includes an illustrative example made in Deepnote, so you can see how the chart works and where it is useful.

All values in the examples are synthetic. They are there to demonstrate how each chart works, not to represent Deepnote, its customers, or real company metrics.

If you already have the data, Deepnote’s AI chart generator can also help you generate and refine a chart from a plain-English description.

Choose a chart by what you need to show

Start with the question you want to answer, then check whether your data contain the information you need. For example, a customer support table might record which team handled each request, when it arrived, and how long the customer waited for a first response. A bar graph could compare how many requests each team received. A line graph could show how the daily number of requests changed over time. A histogram could group waiting times into ranges to show how common short and long waits were. Each chart uses the same records, but organizes them to answer a different question.

Also consider what each summary leaves out. To compare waiting times across teams, you could calculate each team's median: the middle waiting time when its values are sorted from shortest to longest. A bar graph of those medians makes typical waits easy to compare, but does not show whether customers had similar waits or widely different experiences. A box plot adds information about that variation.

If you're new to data visualization, start with four of the most common types of charts: a bar graph for comparing categories, a line graph for following change over time, a pie chart for showing a few parts of a whole, or a histogram for showing how numerical values are spread out. Explore the other graph types when you need to show something these options do not make clear.

What you need to showChartRequired input shape
A measure across categoriesBar graphCategory + measure
Change through timeLine graphDate/time + measure
A few parts of one totalPie chartCategory + value; values must form one meaningful total
The distribution of one measureHistogramOne numerical observation per row
Center and spread, optionally by groupBox plotNumerical observations + optional group
Every value in a small distributionDot plotOne numerical observation per row
A relationship between two measuresScatter plotTwo numerical measurements per observation
Flow between stages or categoriesSankey diagramSource + destination + value

A dataset can support more than one of these. The useful question is which comparison needs to be easiest for the reader to make.

The bar, line, pie, and distribution examples below include their input values or sample rows. Download the complete example datasets and reproduction code to recreate them. Each file is named for its chart; the distribution examples use separate samples.

Comparison charts

Comparison charts are for named groups such as products, teams, plans, or regions. The main choice is whether you are comparing one value per group, several related values within each group, or performance against a target.

1. Bar graph

A bar graph compares one measure across categories. Horizontal bars work well for rankings or long category names.

  • Use it when you have one main value per category. Bars can also compare totals for separate periods; choose a line graph when following the pattern over time is the main task.
  • Skip it when continuity between ordered values matters more than the totals themselves.

This example compares customer requests handled by four teams during the same week.

TeamRequests handled
Support82
Sales67
Product49
Engineering38

Support handled more than twice as many requests as Engineering, although the counts alone do not tell us how much work each request involved. You can create this comparison with Deepnote’s bar graph maker.

2. Column chart

A column chart is a vertical bar-chart variant, with categories along the horizontal axis and bar height encoding the measure.

  • Use it when there are relatively few categories, the labels are short, or their left-to-right order is useful.
  • Skip it when category names are long or there are too many of them to fit comfortably. A horizontal bar graph is easier to scan.

This example compares customer counts across Basic, Pro, Team, and Enterprise plans.

3. Grouped bar chart

A grouped bar chart places several related bars beside each category.

  • Use it when each category contains a small number of series that need to be compared directly.
  • Skip it when there are so many series that the groups become crowded. Use separate charts, or a stacked bar when the relationship between the total and its parts matters more.

This example compares Product A and Product B revenue within each quarter.

Product A leads Product B in every quarter, while both products grow from Q1 through Q4.

4. Cleveland dot plot

A Cleveland dot plot represents category values as dots positioned along a numerical scale.

  • Use it when you want a compact ranked comparison or need to show two values for each category. You can also make a Cleveland comparison in Deepnote.
  • Skip it when the baseline itself is important or a small number of categories would be clearer as bars. Use a bar graph in those cases.

This example shows customer satisfaction with each team's interactions, scored from 0 to 100, for last month and this month. The paired dots let you compare both the teams' scores and how each score changed.

The increase appears across all four teams, rather than being limited to the highest-scoring team. Sales remains highest in both months, showing that scores can improve without changing who leads.

5. Bullet chart

A bullet chart combines a current value with a target and, optionally, broader performance ranges.

  • Use it when the reader needs to judge a KPI against a benchmark in very little space.
  • Skip it when the main question is how the metric changed across several periods. Use a line graph instead.

This example measures the share of new users who complete account setup and create their first project. The completion rate is 78%, against a target of 85%, so the chart makes the seven-percentage-point shortfall easy to see.

6. Radar chart

A radar chart places several measures around shared radial axes and connects the values into a profile.

  • Use it when a small number of items need to be compared across the same small set of measures. Deepnote's radar chart maker maps those measures onto a shared radial scale.
  • Skip it when readers need precise comparisons between measures or when there are many axes or overlapping profiles. Use grouped bars or small multiples instead.

This example gives a product illustrative ratings for speed, reliability, user experience, security, and support. Each rating uses a 0–100 scale, with higher scores representing a better rating. User experience refers to how easy and clear the product is to use.

Composition charts

Composition charts show how individual parts contribute to a total. The choice depends on whether you have one total, several totals to compare, or a hierarchy within the parts.

7. Pie chart

A pie chart divides one whole into slices whose angles and areas represent each category’s share.

  • Use it when there are only a few parts and the differences between them are large enough to see easily. Deepnote's pie chart maker creates the slices from categories and their values.
  • Skip it when there are many categories or several slices are similar in size. A bar graph makes those differences easier to compare.

This example divides one month’s leads, potential customers who expressed interest, among four sources. The input values are percentage shares and add to 100%.

Lead sourceShare of leads
Search38%
Social27%
Email21%
Direct14%
Total100%

Search contributes the largest share, but the other sources together account for most leads.

8. Donut chart

A donut chart is a pie chart with an empty center that can hold a total or short label.

  • Use it when you want a simple part-to-whole view and the center space adds useful context.
  • Skip it when there are many categories or several similarly sized shares. Use a bar graph instead.

This example shows Core, Growth, Scale, and Legacy as shares of a revenue portfolio.

9. Stacked bar chart

A stacked bar chart divides each bar into segments while preserving the overall total. A 100% stacked bar sets every bar to the same height, so readers compare each segment's share rather than the totals.

  • Use it when both the total and the mix of components matter.
  • Skip it when readers need to compare every component precisely across groups. Use grouped bars instead, since only the segment attached to the baseline has a consistent starting point.

This example shows quarterly lead totals split among Search, Social, and Email.

Total leads rise from 35 in Q1 to 53 in Q4, with Search contributing the largest share in every quarter.

10. Treemap

A treemap represents hierarchical data as nested rectangles, with area corresponding to value.

  • Use it when the categories have a hierarchy, such as region → product, and you want to show both the structure and relative size.
  • Skip it for a flat list of unrelated categories. A bar graph will compare those values more accurately.

This example breaks revenue down by region, then by product within each region. Each region contains smaller product rectangles, with larger areas representing more revenue. With those categories and revenue values in your data, you can ask Deepnote to show the regional and product breakdown as a treemap.

11. Waterfall chart

A waterfall chart shows how a starting value changes through a sequence of positive and negative contributions to reach an ending value.

  • Use it when the intermediate additions and subtractions are part of the explanation.
  • Skip it when the categories are independent rather than steps in a bridge from one total to another. Use a bar graph instead.

This example shows changes in annual recurring revenue (ARR): subscription revenue expressed as a yearly amount. New customers and upgrades add revenue, while cancellations and downgrades subtract it. The chart shows how those changes lead from the starting total to the ending total.

ARR starts at $120,000. New sales and expansion add $54,000, while churn and contraction subtract $21,000, producing an ending ARR of $153,000.

Revenue gained from new customers and expanded subscriptions more than offsets revenue lost through cancellations and reduced subscriptions. The waterfall shows how those opposing changes produce the overall increase, which a starting and ending total alone would hide.

Distribution charts

Distribution charts show how numerical observations are spread rather than simply reporting a total or average. The main choice is how much of the underlying data you want the reader to see.

12. Histogram

A histogram groups numerical observations into ranges, called bins, and shows how many fall into each range. Although it uses bars, a histogram is not a bar graph. Each bar covers a range of numbers rather than a named category, so the bars must stay in numerical order.

  • Use it when you want to see the overall shape of a numerical distribution, particularly once there are too many values to show individually. Deepnote's histogram maker creates those bins from raw numerical values.
  • Skip it when exact observations matter and the dataset is small. Use a dot plot instead. If the goal is to compare several distributions compactly, use box plots.

This example groups 250 order delivery times into ranges of days. Most orders take between about two and a half and four days, but a smaller second group sits around five to six days. An average delivery time would hide that second group.

Each row records one order’s delivery time in days. These are the first five of the 250 observations; the complete values are in histogram.csv in the example-data download. The chart groups them into half-day intervals.

Sample rowDelivery time (days)
13.196
23.880
33.682
43.671
54.252

13. Box plot

A box plot summarizes a distribution using its median, quartiles, whiskers, and possible outliers.

  • Use it when you need to compare the center and spread of several groups in little space. Deepnote's box plot maker can generate grouped box plots from numerical data.
  • Skip it when the detailed shape of the distribution matters, such as multiple peaks. Use a violin plot or histogram instead.

This example contains 80 delivery times for each of three groups: Standard, Express, and Priority shipping. It compares their medians and spreads without reducing each group to a single average.

Here are the first two observations from each shipping method. The complete 240-row dataset is in box.csv.

Delivery methodDelivery time (days)
Standard7.809
Standard2.414
Express3.948
Express2.071
Priority1.950
Priority0.838

14. Violin plot

A violin plot shows the shape and density of a numerical distribution, widening where observations are more concentrated.

  • Use it when you want to compare distribution shapes across groups and details such as multiple peaks may matter.
  • Skip it when the audience only needs a familiar summary of median and spread. A box plot is simpler to read.

This example compares 80 delivery times for each of Standard, Express, and Priority shipping. It uses a separate sample from the box plot. Wider areas show where delivery times are more concentrated.

These are the first two observations from each method; violin.csv contains all 240 rows.

These are the first two observations from each method; violin.csv contains all 240 rows.

Delivery methodDelivery time (days)
Standard6.565
Standard4.723
Express4.521
Express4.573
Priority1.188
Priority2.845

15. Dot plot

A traditional stacked dot plot gives every observation its own mark on a numerical scale, stacking repeated values vertically.

  • Use it when the dataset is small enough that retaining every observation adds useful information. Deepnote's dot plot maker can build this stacked form from individual numerical values.
  • Skip it when the sample is large enough that the individual dots become crowded. Use a histogram instead.

This example shows the delivery times for 15 orders, measured in whole days:

1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6

Each value becomes one dot. Repeated values remain separate observations and form taller stacks.

16. Density plot

A density plot smooths numerical observations into a continuous curve showing where values are concentrated.

  • Use it when the broad shape of a distribution matters, especially when comparing a few distributions on the same scale.
  • Skip it when readers need exact counts or individual observations. Use a histogram or dot plot instead. The curve also depends on the smoothing bandwidth: too little smoothing can emphasize noise, while too much can hide real structure.

This curve uses a separate sample generated by the same process as the histogram’s. Its shape depends on both the observations and the smoothing bandwidth. To judge what smoothing reveals or hides, compare it with a histogram of these same values.

These are the first five observations from the density example. The complete 250 values are in density.csv; the reproduction code includes the smoothing calculation.

Sample rowDelivery time (days)
12.813
23.610
33.876
43.870
54.382

Relationship charts

Relationship charts show how variables, sets, or combinations relate to one another. The right chart depends on whether you are comparing two measurements, many pairwise relationships, or set membership.

17. Scatter plot

A scatter plot positions each observation using one numerical variable on each axis.

  • Use it when you want to examine whether two measurements appear related. Deepnote's scatter plot maker plots two numerical columns against each other.
  • Skip it when there is only one numerical variable or the main comparison is between named categories. Use a distribution chart or bar graph instead.

Each dot represents one customer account during the same week. Its position compares how many people used the product with how many projects they created, helping you see whether accounts with more active users also tend to create more projects.

18. Bubble chart

A bubble chart extends a scatter plot by using marker size to encode another numerical value.

  • Use it when a third measurement adds useful context to a two-variable relationship. Deepnote's bubble chart maker maps that additional value to bubble size.
  • Skip it when readers need to compare the third variable precisely. Keep a scatter plot for advertising spend versus leads, and pair it with a ranked bar graph of market size by campaign. Position and bar length make those differences easier to judge than bubble area.

Each bubble represents a regional advertising campaign. Its position compares advertising spend with the number of potential customers who expressed interest, called leads. Bubble size represents the estimated number of potential customers in that market, while color identifies the region. Size bubbles by area, not radius. If the radius doubles, the area quadruples, so large values would look far bigger than they are.

19. Heatmap

A heatmap represents values in a grid using color.

  • Use it when readers need to scan patterns across many combinations of two categorical or ordered dimensions, such as teams and weekdays.
  • Skip it when exact numbers are more important than broad patterns or the grid contains only a handful of values. Use a table or grouped bars instead.

This example compares the number of requests handled by four teams from Monday through Friday. Each cell represents one team on one day, and its color shows how many requests that team handled, making busier and quieter periods easy to spot.

20. Correlation matrix

A correlation matrix shows pairwise correlations among several numerical variables in a grid.

  • Use it when you need to scan many possible relationships before deciding which ones deserve closer analysis.
  • Skip it when you need to inspect the actual shape of one relationship or infer causality. Use a scatter plot for the former; a correlation matrix cannot establish the latter.

This example compares four measurements for each customer account: weekly product-use hours, projects created that week, support response time, and a satisfaction score. Each cell shows whether a pair of measurements tends to increase together or move in opposite directions. Values near 1 indicate movement together, values near −1 indicate opposite movement, and values near 0 suggest little straight-line relationship.

21. Venn diagram

A Venn diagram uses overlapping shapes to show membership and intersections between sets.

  • Use it when two or three simple sets and their overlap are the point of the visualization. Deepnote's Venn diagram maker creates those set intersections from the group sizes.
  • Skip it when there are many sets or many intersections to compare. Use a table or a more scalable set-intersection chart instead.

This example compares customer accounts that used notebooks, dashboards, or both during one month.

The overlap represents accounts that used both notebooks and dashboards; the non-overlapping areas represent accounts that used only one.

Charts for change over time

Time-series charts preserve chronological order so the reader can follow what changed. The main choice is whether you care about the trend, the magnitude underneath it, changing composition, or rank.

22. Line graph

A line graph connects values in chronological or another meaningful order.

  • Use it when the trend and movement between periods matter. Deepnote's line graph maker connects time-based observations into a continuous series.
  • Skip it when the x-axis contains unrelated categories rather than an ordered sequence. Use a bar graph instead.

This example tracks active workspaces each month in 2026.

MonthActive workspaces
January120
February128
March135
April142
May151
June158
July166
August174
September181
October189
November198
December207

Active workspaces increase every month. The line makes that sustained pattern easier to see than a comparison of January and December alone.

23. Area chart

An area chart fills the space beneath a line, putting additional emphasis on the amount represented by the series.

  • Use it when both the trend and a sense of overall volume matter.
  • Skip it when readers need precise point-to-point comparisons. A plain line graph is cleaner.

This example shows weekly usage hours, with the filled area emphasizing the amount beneath the trend line.

24. Stacked area chart

A stacked area chart shows how several components and their combined total change over time.

  • Use it when both the total trend and changing composition matter.
  • Skip it when readers need to compare each component precisely through time. Use separate line graphs or another chart with a consistent baseline.

This example divides monthly sessions among Search, Social, and Email while the top edge shows total sessions.

Search contributes the most sessions each month, while the top edge shows the combined monthly total across Search, Social, and Email.

25. Candlestick chart

A candlestick chart summarizes the open, high, low, and close for each time period.

  • Use it when all four values matter, most commonly for financial price data.
  • Skip it when you only have one value per period. A line graph is simpler.

This example shows twelve days of illustrative price data, with each candle displaying the day's range and opening and closing values.

26. Bump chart

A bump chart tracks changes in rank over an ordered sequence.

  • Use it when position relative to other categories matters more than the underlying numerical difference.
  • Skip it when readers need to know how large the gaps between categories actually are. Use a line graph of the original values instead.

This example ranks four product feature groups by the number of customers using them each quarter. First place means the most customers. Following each line shows which feature groups move up or down in popularity, but not how large the differences in customer counts are.

Flow and geography charts

These charts preserve structures that ordinary x/y charts do not: movement through a system, geographic location, or connections between entities.

27. Sankey diagram

A Sankey diagram represents flows between sources and destinations, with link width showing quantity.

  • Use it when the data branches across several paths and both source and destination matter. Deepnote's Sankey diagram generator turns source, destination, and value data into weighted flows.
  • Skip it for a simple linear sequence of stages. A funnel chart is easier to read.

This example follows 100 website visitors as they split between self-serve and sales-assisted signup. The self-serve group then splits again by whether people created a first project, so you can see where the path branches and how many people take each route.

28. Funnel chart

A funnel chart shows how a count changes through an ordered sequence of stages.

  • Use it when the same population progresses through a linear process and drop-off between stages matters.
  • Skip it when the paths branch or the categories do not form a genuine sequence. Use a Sankey diagram for branching flows or a bar graph for unrelated categories.

This example follows 12,000 website visitors through signing up, creating their first project, starting a trial, and becoming paying customers. Creating that first project is labeled “activation” here. Each stage counts how many people from the original group reached that step, making it easier to see where progression slows.

29. Choropleth map

A choropleth map colors geographic regions according to a value associated with each area.

  • Use it when a rate, percentage, or other region-level measure needs to be compared geographically.
  • Skip it when the data belongs to exact locations or when raw totals mostly reflect differences in population or area size. Use a symbol map for points or a bar graph for direct category comparison.

This map colors each US state by its number of active teams per 100 customer accounts. A value of 60 means the state has 60 active teams for every 100 accounts. Using rates lets you compare states with very different numbers of accounts, so a state with more customers does not look more active simply because it is larger.

30. Symbol map

A symbol map places markers at specific geographic coordinates and can vary their size to encode a value.

  • Use it when exact locations matter more than the value assigned to an entire region.
  • Skip it when the measurement applies to complete geographic areas such as states or countries. Use a choropleth map instead.

This map compares the number of active teams in six US cities. Each marker shows a city’s location, and larger markers mean more active teams. It helps you see where those teams are concentrated geographically.

31. Network graph

A network graph represents entities as nodes and their relationships as links.

  • Use it when the connections themselves are what you need to understand.
  • Skip it when the relationships are not meaningful or the network is so dense that the links obscure the structure. Use a table, bar graph, or filtered subset instead.

This example connects a User, Notebook, Dataset, Chart, Integration, and Dashboard to show how those entities relate.

How to choose the right chart

The table near the top helps you identify the right chart family. Within each family, the choice comes down to what part of the data needs to be easiest to compare.

If you're choosing between... Use...

Comparison chartsA bar graph for one value per category; grouped bars for a few related series; a Cleveland dot plot for a compact ranked or paired comparison; a bullet chart for actual vs target; a radar chart for a small multi-measure profile.
Composition chartsA pie or donut for a few parts of one total; a stacked bar when totals and composition both matter; a treemap for hierarchical parts; a waterfall when additions and subtractions explain the change from a starting total to an ending one.
Distribution chartsA histogram for the overall shape; a box plot to compare several groups compactly; a violin plot when distribution shape matters; a dot plot when the sample is small enough to keep every value visible; a density plot for a smoothed view of the shape.
Relationship chartsA scatter plot for two numerical variables; a bubble chart when a third numerical value matters; a heatmap for a grid of many combinations; a correlation matrix for many pairwise relationships; a Venn diagram for simple set overlap.
Change-over-time chartsA line graph for the trend itself; an area chart when magnitude also matters; a stacked area chart for changing composition; a candlestick chart for open/high/low/close data; a bump chart when rank is the story.
Flow and geography chartsA Sankey diagram for branching flows; a funnel for a linear sequence of stages; a choropleth for values by region; a symbol map for exact locations; a network graph for relationships between connected entities.

More than one chart can be valid for the same dataset. Choose the one that makes the specific comparison you care about easiest to see.

Build, check, and share a chart in Deepnote

Choosing a chart is only part of the work. The calculation behind it also needs to remain visible. In Deepnote, the source DataFrame, SQL or Python steps, chart, and written interpretation can live in the same notebook. A teammate can inspect what was grouped or aggregated, change the question, and rerun the analysis without reconstructing it from an exported image.

For common visualizations, Chart blocks work with pandas, Polars, and PySpark DataFrames. You can configure the dimensions, measures, grouping, and aggregation directly, or ask Chart AI for a starting point and then inspect and change its settings. For a more specialized chart, you can work in Python or duplicate a Chart block into editable Vega-Lite code. If you already have data to visualize, you can describe the comparison you want to show and refine the resulting chart in Deepnote.

Deepnote Agent can also add or revise SQL, Python, and text blocks, run code, and inspect the resulting outputs with the surrounding project context. The result remains a notebook that other people can review, extend, and share, rather than a chart separated from the work that produced it. This reflects the idea in our notebook manifesto: the notebook can hold both the work and the record of how the result was reached.

Frequently asked questions

01

What are the different types of graphs?


02

When should you use different types of graphs?


03

How many types of graphs are there?


04

What is the difference between a chart and a graph?


05

How do I choose the right type of graph?


Srihari Thyagarajan

Technical Writer

Follow Srihari on Twitter, LinkedIn and GitHub

Blog

Illustrative image for blog post

How data teams are actually building the context layer

By Jakub Jurovych

•

Updated on September 1, 2026

Try Deepnote now

Get started – it’s free
Book a demo

Footer

Solutions

  • Notebook
  • Data apps
  • Machine learning
  • Data teams

Product

Company

Comparisons

Resources

Tools

Footer

  • Privacy
  • Terms

© 2026 Deepnote. All rights reserved.