Skip to Main Content
Stony Brook University

Data Visualization Guide

Chart Types

The following page can help you choose which visualization is most appropriate for your project. While this may not be exhaustive, we strive to provide comprehensive guidelines to help you build effective and successful visualizations. This page will be regularly updated, so please check back often for the latest information and resources.

Arc Diagram

Arc Diagram

Uses arcs to visualize connections between nodes placed on a one-dimensional axis.

Goal: Relationship

Data Type: Categorical

Best For: Visualizing the relationship between nodes.

How To: Python (arcplot), R (arcdiagram)Tableau

 

Area Chart

Area Chart

Essentially a line chart with the area between the line and the x-axis filled in.

Goal: Trend

Data Type: Continuous

Best For: Visualizing trends over time and the magnitude of change.

How To: Google Sheets,  Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Bar Chart

Bar Chart

Values are indicated by the length of rectangular bars, with each bar corresponding to a measured group.

Goal: Comparison

Data Type: Categorical or Discrete

Best For: Comparing quantities across different categories, especially when there are many bars to plot, or when dealing with longer category names.

How To: Google Sheets,  Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Box Plot

Box Plot

Also known as box and whisker plot, it displays the distribution of a dataset based on a five-number summary (i.e., min, Q1, median, Q3, max)

Goal: Comparison, Distribution

Data Type: Continuous

Best For: Showing the spread and skewness of data along with outliers. Multiple boxplots are useful for comparing distribution across groups or categories.

How To: Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Bubble Chart

Bubble Chart

Essentially a scatter plot with one or two additional dimensions represented by bubble size and color.

Goal: Comparison, Distribution, Relationship

Data Type: Continuous

Best For: Visualizing the relationship between three or four variables or comparing data points based on those variables.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Bubble Map

Bubble Map

A map visualization where data is represented by varying size of bubbles in proportion to the value, enabling comparison of data points across different regions.

Goal: Comparison, Distribution, Geospatial

Data Type: Categorical or Continuous

Best For: Visualizing the distribution and comparing the magnitude of values across different locations.

How To: Google Sheets, Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Butterfly Chart

Butterfly Chart

Also known as a tornado chart or diverging bar chart, a butterfly chart places two bar charts back-to-back, sharing a common category axis. 

Goal: Comparison, Distribution

Data Type: Categorical or Discrete

Best For: Comparing two groups across multiple categories. It is frequently used to compare populations across groups, such as age and sex, creating a population pyramid.

How To: Microsoft 365, Python (Matplotlib), Python (Plotly), R (ggplot2)Tableau

 

Chord Diagram

Chord Diagram

A circular chart that shows relationships between data points using arcs.

Goal: Flow, Relationship

Data Type: Categorical

Best For: Visualizing complex relationships and flows between different entities.

How To: Python (Bokeh), Python (Plotly), R (Plotly), R (circlize)Tableau

 

Choropleth Map

Choropleth Map

A map visualization where data is represented by varying colors or shades in proportion to the value, enabling comparison of data points across different regions.

Goal: Comparison, Distribution, Geospatial

Data Type: Categorical or Continuous

Best For: Visualizing the intensity of a variable across geographic area.

How To: Google Sheets, Microsoft 365, Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Column Chart

Column Chart

Essentially a bar chart oriented vertically. 

Goal: Comparison, Distribution

Data Type: Categorical or Discrete

Best For: Comparing quantities across different categories, especially when dealing with shorter category names.

How To: Google Sheets,  Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Density Plot

Density Plot

Essentially a smoothed version of a histogram.

Goal: Comparison, Distribution

Data Type: Continuous

Best For: Visualizing the distribution of a dataset. Multiple density plots are useful for comparing distribution across groups or categories.

How To: Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Donut Chart

Donut Chart

A variation of a pie chart, with a hole in the center. Each segment represents a part of the whole, and the size of each segment is proportional to its value.

Goal: Composition

Data Type: Categorical

Best For: Showing parts of a whole with space for additional information in the center.

How To: Google Sheets,  Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Dumbbell Plot

Dumbbell Plot

Displays changes between two data points for each category using circles connected by a line, resembling a dumbbell, to illustrate the difference between the two values.

Goal: Comparison, Trend

Data Type: Categorical or Continuous

Best For: Highlighting changes or differences between two points in time for multiple categories.

How To: Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Funnel Chart

Funnel Chart

Shows a process that leads to a result, with each stage represented as a proportion of the total.

Goal: Composition, Flow

Data Type: Categorical or Continuous

Best For: Visualizing stages in a process and identifying potential bottlenecks.

How To: Google Sheets, Microsoft 365, Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Gauge Chart

Gauge Chart

A circular chart that represents a single data point within a range.

Goal: Comparison

Data Type: Continuous

Best For: Displaying a single value within a qualitative range.

How To: Google Sheets, Microsoft 365, Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Heat Map

Heat Map

Values are represented as colors in a matrix

Goal: Comparison, Distribution

Data Type: Categorical or Continuous

Best For: Visualizing variations across two dimensions.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Histogram

Histogram

A variation of bar chart that represents the frequency distribution of a dataset.

Goal: Distribution

Data Type: Continuous

Best For: Visualizing the distribution of a continuous variable.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Line Chart

Line Chart

Displays information as a series of data points connected by straight line segments.

Goal: Comparison, Trend

Best For: Visualizing trends and changes over time, and comparing a few time-series data sets

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Network Graph

Network Graph

Represents relationships between nodes using edges.

Goal: Relationship

Data Type: Categorical

Best For: Visualizing complex networks and relationships.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Pie Chart

Pie Chart

A circular chart divided into sectors, each representing a proportion of the whole. Each sector's angle and area are proportional to the value it represents.

Goal: Composition

Data Type: Categorical

Best For: Showing parts of a whole (add up to 100%) in a simple and easily understandable manner.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Radar Chart

Radar Chart

Also known as a polar area chart or spider chart, it displays data in a polygonal shape with each axis representing a different category. The distance from the center to the data point represents the value.

Goal: Comparison

Data Type: Categorical or Continuous

Best For: Comparing multiple variables in a visually engaging way, especially when the categories are not directly comparable.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2)Tableau

 

Radial Bar Chart

Radial Bar Chart

Also known as a circular bar chart. Essentially a bar chart plotted on a polar coordinate system instead of a Cartesian one.

Goal: Comparison

Data Type: Categorical or Discrete

Best For: Comparing a set of categories where the radial layout can provide a more engaging visual.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), R (ggplot2), Tableau

 

Sankey Diagram

Sankey Diagram

A type of flow diagram from one set values to another (nodes) connected with lines (links)

Goal: Flow

Data Type: Categorical

Best For: Visualizing the distribution and movement of resources, a many-to-many mapping between two domains, or multiple paths through a set of stages.

How To: Google Charts, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Scatter Plot

Scatter Plot

A type of plot or mathematical diagram using Cartesian coordinates to display values for two variables. Each point represents an observation in the dataset, with the position determined by the values of the two variables.

Goal: Comparison, Distribution, Relationship

Data Type: Continuous

Best For: Visualizing the relationship between two variables.

How To: Google Sheets, Microsoft 365, Python (Matplotlib), Python (Plotly), R (Plotly), R (ggplot2), Tableau

 

Sunburst Diagram

Sunburst Diagram

A multilevel pie chart, where each level represents a hierarchical category. Each segment represents a category and its subcategories, radiating outward from the center.

Goal: Comparison, Composition, Hierarchy

Data Type: Categorical

Best For: Visualizing hierarchical data and showing the contribution of each category to the total.

How To: Microsoft 365, Python (Plotly), R (Plotly), Tableau

 

Treemap Chart

Treemap Chart

Displays hierarchical data using nested rectangles. Each rectangle represents a category, and its size is proportional to the value. Subcategories are nested within the main categories.

Goal: Comparison, Composition, Hierarchy

Data Type: Categorical or Discrete

Best For: Visualizing large amounts of hierarchical data in a compact and space-efficient manner.

How To: Google Sheets, Microsoft 365, Python (Plotly), R (Plotly), Tableau