Skip to content
plot.tools

Stacked bar chart maker

Show totals and what they are made of, bar by bar. Paste your table and download the picture.

What this page does

  • One bar per row, one segment per series
  • Labels inside segments, in a readable ink colour
  • Sort bars by total
  • Negative values stack below zero
  • Vertical or horizontal
Stacked bar chart: Support tickets by priority. 3 series (Low, Medium and High) across 5 categories, from Week 1 to Week 5. Low: highest 45 (Week 4), lowest 34 (Week 1). Medium: highest 30 (Week 5), lowest 19 (Week 2). High: highest 14 (Week 4), lowest 8 (Week 3).Support tickets by prioritySample data: tickets closed per weekLowMediumHigh020406080100Week 1Week 2Week 3Week 4Week 53441384540221927243091281411
PNG scale

SVG 1600 × 900 px · PNG 3200 × 1800 px · 16:9

No account and no watermark. The file has the Inter font embedded, named layers and the chart’s alt text, so it looks the same in a slide, a document or a browser. Not every app reads alt text stored in a file, so also paste it into the image’s alt text field.

Alt text: Stacked bar chart: Support tickets by priority. 3 series (Low, Medium and High) across 5 categories, from Week 1 to Week 5. Low: highest 45 (Week 4), lowest 34 (Week 1). Medium: highest 30 (Week 5), lowest 19 (Week 2). High: highest 14 (Week 4), lowest 8 (Week 3).

Your data

First column: labels. Other columns: one series each. The file is read in your browser and is not uploaded.

Table

5 × 3

Label
Remove row

Design

Chart type

Direction
Series

Text

Numbers

Colours

Output

Proportion

320 to 4000 px. PNG multiplies it by the scale.

Background
  1. Step 1: Pick a chart typeBar, line, pie, scatter, area or radar. You can switch at any time.
  2. Step 2: Put in your numbersPaste cells from Excel or Google Sheets, load a file, or type in the table.
  3. Step 3: Download the pictureA PNG for slides and documents, or an SVG you can edit.

Start from an example

Click one to load it in the editor, then replace the sample numbers with yours.

Each row becomes one bar and each column a coloured segment, with the value written inside when it fits. Download SVG or PNG with no account and no watermark.

How to make a stacked bar chart

  1. Put one bar per row: the bar’s name in the first column.
  2. Put one segment per column: the segment’s name in the header, its values below.
  3. Paste the cells in the Data panel. The page opens with “Stacked” selected.
  4. Turn on value labels to write each value inside its segment, and download.

What stacking shows

A stacked bar answers two questions at once: how big is the total, and what is it made of. The total is the full height of the bar and is read against the axis. The bottom segment is also easy to read, because it starts at zero. The segments above it float, so their sizes can be compared only roughly.

That decides the order of your columns. Put the series that matters most first, so it sits on the axis. Keep the same order in every bar; the chart does that for you and gives each series one colour throughout.

Stacked, grouped or 100%

  • Stacked: totals first, composition second.
  • Grouped: compare the parts with each other; the total is not shown. Switch with “Side by side” in the Design panel, or open the bar chart maker.
  • 100% stacked: compare the mix when totals differ a lot. Enter the shares of each row as percentages that add up to 100 and choose the Percent format.

Labels and colour

A value is written inside its segment when the segment is large enough, in white or dark ink depending on the fill, so it stays readable on every colour of the palette. For series with an order, such as low, medium and high, the “Blues” palette goes from dark to light and makes the order visible. For unrelated categories keep a categorical palette.

Sorting

“Largest first” sorts the bars by their total. Leave the order alone for weeks, months or any sequence. For a continuous period with many steps, an area chart shows the same composition as a flowing shape.

Why use Plot Tools

What you can check for yourself, without taking our word for it.

No account, no watermark
The download buttons work straight away. The exported file holds your chart, your text and the font, and nothing else.
Your data stays in the browser
Pasted cells and loaded files are parsed and drawn on this page. There is no upload step, and the site’s security policy only allows connections to itself.
The PNG matches the screen
The Inter font is embedded in the SVG before it is rasterised, so the labels in the PNG sit exactly where you saw them.
Decimal comma understood
1.234,56 and 3,5 are read correctly: the separator and the decimal mark are detected from the data, and you can override both.
Defaults a data editor would accept
Round axis marks, solid fills, one colour per series, bars that start at zero, and a square background that can be transparent.
Colour-blind-safe by default
The default palette is Okabe-Ito. A test in the code simulates red-green colour blindness and checks that its colours stay apart.
A link that carries the chart
“Copy link” packs the data and settings into the part of the address after #, which browsers do not send to servers.
Alt text written for you
A description is generated from the data and stored in the SVG and the PNG. Line and area charts also say how each of the first four series ends compared with its start. It is shown under the chart with a button to copy it.

Questions and answers

Stacked or grouped bars: which one?

Stacked when the total matters and the parts are secondary. Grouped (side by side) when the reader has to compare the parts with each other. You can switch between the two in the Design panel without touching the data.

How do I make a 100% stacked bar chart?

Enter each part as a percentage of its row, so every row adds up to 100, and choose the Percent format. The chart does not convert amounts to percentages of the row for you.

Why is a label missing in a small segment?

A label is written only where it fits inside its segment. Squeezing it in would overlap the neighbour. The value is still in the table and in the SVG as a shape.

How are negative values stacked?

Positive values stack upwards from zero and negative values stack downwards, so a row with both shows a bar on each side of the axis.