Bar charts use rectangular bars to represent values across different categories or groups. The height or length of each bar represents the numeric value for its category.


Also known as: Bar graph, column graph.

Anatomy

A vertical bar chart displaying monthly data with values ranging from 1.8k to 4.5k. Callout A indicating the optional title, callout B indicating the optional data table button, callout C indicating the required keyboard instructions, callout D indicating the optional subtitle, callout E indicating the required plot canvas, callout F indicating the required data markers, callout G indicating the quantitative axis, and callout H indicating the categorical axis

A. Title (optional): Brief text summarizing the contents of the chart.
B. Data table button (optional): UI icon button enabling users to view the chart’s data in table format.
C. Keyboard instructions (required): UI icon button enabling users to access the chart’s keyboard navigation instructions.
D. Subtitle (optional): Additional text providing details, context, or instructions about the chart.
E. Plot canvas (required): Area containing the graphic part of the chart including axes, gridlines, and other elements.
F. Data markers (required): Bars representing data points where the length or height of the bar indicates its category’s value.
G. Quantitative axis (required): Scale representing numeric values, either on the horizontal or vertical axis.
H. Categorical axis (required): Scale representing categories or dates, either on the horizontal or vertical axis.

Usage

A table that displays when to use and when not to use different component variants.
Component variant When to use When not to use
Simple trendTo compare across categories or between individual data points.

To identify the highest and lowest values at-a-glance.

To understand the precise value of each data point.
If your data includes extreme values.

If summarizing your data could obscure meaningful patterns in the underlying data.
TrendTo show how trends change over longer periods like weeks, months, or quarters.

To identify when values were highest or lowest.
To enable comparisons of trends over smaller date periods, such as days or hours. Consider using a Line chart instead.

To show the pace of change between data points rather than their specific values. Consider using a Line chart instead.

To compare trends across several categories. Consider using a Clustered bar chart or a Stacked bar chart
Compare trend to benchmarkTo summarize change over time and emphasize when values were above or below a benchmark or threshold, such as market average, goal, or budget.When there isn’t a benchmark to use for comparison. Consider using the Simple trend bar chart or a sequential color palette like in the Trend bar chart example instead.
Compare category rankingTo rank and compare values between categories.

To identify high and low values.
If you need to show composition within categories. Consider using a Clustered bar chart or a Stacked bar chart instead.

If there are extreme high or low values. Consider visualizing a simple ranking instead of the quantity of each category instead.

When you need to provide comparisons of category rankings across multiple metrics or quantitative variables. Consider using a Parallel coordinates plot instead.
Distribution summaryTo compare the range of values, which values are most common, and how they are distributed around the average value.If your data is small or contains a lot of extreme values. Consider using a dot plot or box plot instead.

Best practices

  • Ensure the chart clearly communicates important takeaways, like if the data values are in a desirable or undesirable range.
  • Always start the quantitative axis at zero to avoid distorting data or exaggerating differences in bar sizes.
  • Avoid displaying too many data points as this makes bar charts difficult to read and interpret.
  • Consider using Pagination or group data into broader categories to limit how many data points are shown at a time.
  • Provide in-context cues and labels to help users interpret the chart correctly without requiring significant effort.

Layouts

Bar charts can be displayed vertically or horizontally based on the data included. Select whichever layout will provide better legibility and scannability.

Vertical layout

In this layout, bars are displayed next to one another with taller bars representing higher values.

A vertical bar chart schematic.
  • Use this layout to visualize trends, where each bar represents a date period such as week or month.
  • Use this layout when data has a meaningful order, like age groups or a scale (low, medium, high).

Horizontal layout

In this layout, bars are displayed along the horizontal axis with longer bars representing higher values.

A horizontal bar chart schematic.
  • Use this layout for data with distinct categories, such as countries or market segments.
  • Use this layout to help make longer category names easier to read.

Data order

Bars on the categorical axis should be arranged in a meaningful way to help users quickly grasp the point of the chart. When deciding on the data order, consider what would be the most useful reading order of the data, as well as the story being told.

  • Use standard ordering for categories that are chronological, like days, months, or years, if the goal is to visualize changes over time.
  • Sort categories in order of their values to emphasize ranking or the differences in quantities between categories.
A horizontal bar chart organized in categorical, descending order.

Do Arrange categories in descending order from the highest to lowest values.

A horizontal bar chart with alphabetical ordering.

Don't Use alphabetical order. This makes it harder to identify patterns and doesn’t provide meaningful insights.

Chart size

Chart size should be based on the data within each chart. Use the columns in the Responsive grid system to set the width of the card, as shown below. Adjust the card’s height so the is proportional and accurately represents the shape of the data.

A content card with a bar chart placed over a grid schematic layout.
  • Ensure charts are wide enough to be interpreted without scrolling or zooming.
  • Consider the type of analysis users need to do with the chart, and ensure it’s large enough to support that goal.

Color

Color can be used to emphasize meaningful information and draw attention to the most important information in a chart. Use one color from the Neutral data visualization color palette, unless encoding additional data with color would add significant value.

A bar chart that uses color as a supplementary encoding to highlight meaningful patterns.

Do Use color to highlight meaningful patterns or support tasks, like a sequential palette to emphasize high or low values.

A bar chart that uses color as a supplementary encoding to highlight meaningful patterns.

Don't Use a different color for every data point, as it adds a lot of mental effort to understand the meaning of each color.

Content

  • Always use sentence case except for proper nouns or acronyms.
  • Use plain language and avoid abbreviations or jargon.
  • Provide more detailed explanations and definitions on demand for any metrics that have complex business logic.
  • Reference Content for additional guidance on crafting content within apps and experiences.

Titles and subtitles

  • Use informative chart titles to help users understand the chart’s topic and what they can expect to learn from it.
  • Frame titles as a headline that summarizes the trend or insight.
  • Use subtitles to provide more detail about the data being shown and to help users understand how to read and interpret the chart.
  • Consider phrasing summaries as questions to guide the user’s analysis, especially on exploratory dashboards where users are likely to spend significant time analyzing data.
  • Avoid titles and subtitles that are general or vague.

Labels

  • Ensure numbers, dates, and other data or axis labels are formatted consistently.
  • Follow plain language principles, such as using shorter and simpler words and phrases.

Number format

Simplify number formats to limit unnecessary details and reduce the mental effort needed to compare numbers. If needed, numbers with higher precision can be provided in a tooltip to users who want to access more detail.

A table that displays recommended number formats for different data types.
Data type Recommended format
Large numbersUse abbreviated format, such as 1.2k instead of 1,200.
PercentageUse whole percentage points, except for special cases where basis points are needed.
Basis pointsUse basis points (bps) when change percentage is very small. 1 bps equals 0.01% (0.0001 in decimal format).
CurrencyRound to the appropriate level of detail that is required for the analysis. For example, for U.S. currency round to the nearest dollar amount.