PlotSet LogoPlotSet

How to Create a Grouped Bar Chart

A step by step walkthrough for turning a wide spreadsheet into a published grouped bar chart in PlotSet, from shaping the columns to publishing, embedding or exporting the finished chart.

About 8 minutes

This guide covers how to create a grouped bar chart in PlotSet: a chart with two or more bars sitting side by side inside every category, so you can compare a handful of series against each other and against the category next door in one picture. You'll end with a published chart built from your own columns, sorted on purpose, coloured consistently, and either embedded on a page or exported as an image.

If your spreadsheet already has one column per series, this takes about eight minutes, most of it spent choosing an order and locking down colours rather than fighting the upload. Add another five or ten if your data currently sits in long format, one row per category-series pair, and needs pivoting into columns first.

The data you need

Wide format: one row per category, one column per series. The category name goes first, then one number column for every series you want to compare, with a single header row.

Sample CSV
QuarterStreamingHardwareServices
Q11820006400041000
Q22010005800047000
Q31950007100052000
Q42380008900060000
Notes

This is wide format, not long format. If your source data instead has three columns, category, series name, value, stacked into many rows, pivot it in your spreadsheet first so each series gets its own column.

Two to four series is the sweet spot. PlotSet will happily chart a fifth or sixth column, but a group of six bars is hard to scan and usually reads better as small multiples.

The column headers become the legend labels, so write them the way you want them to read on the chart. 'Streaming' beats 'streaming_rev' or a generic 'Series 1'.

A blank cell in a series column renders as a bar with no height rather than being skipped. Fill in the real number, or delete the row if a category has no data for one series.

The steps

The exact click path in PlotSet, from a blank template to a finished chart.

  1. 01

    Open the grouped bar chart template

    From the PlotSet dashboard, start a new project and choose the Grouped Bar Chart template. It loads with sample data already bound, so you can see exactly how categories and series map onto groups before your own file goes in.

    PlotSet's template picker: chart categories listed down the left, the Bar Charts grid open, and the Bar Chart template card showing its Select button.
    Every guide starts here. Pick the category, then the template: it is the same grid whichever chart type you are after.
  2. 02

    Shape your sheet into wide format

    Put the category in the first column and give every series its own column after that, one row per category. If your export currently has a separate 'series' column with repeated category names, pivot it in your spreadsheet so each series becomes a column instead of a row value.

  3. 03

    Upload your file or connect a sheet

    Import a CSV or .xlsx file from the data panel, paste rows directly, or connect a Google Sheet if you want the chart to refresh later without a re-upload. PlotSet reads the first row as headers and treats every column after the category as a separate series.

    The PlotSet editor's data view: a spreadsheet grid with Name, Value and Region columns filled with Canadian province figures, beside the Data panel offering CSV upload, Magic Import and Google Sheet sync.
    The data view, shown here on a bar chart project. Upload a CSV, lift the numbers out of an image with Magic Import, or sync a Google Sheet. The panel is identical for every chart type.
  4. 04

    Map the category column and the series columns

    Confirm which column feeds the category axis and which columns feed the bars within each group. This is usually right by default when your headers are clean, but double check it if your sheet carries extra columns you don't want charted.

    The PlotSet data panel with the column bindings highlighted: Label/time mapped to column A, Values to column B and Filter/color to column C, with the Auto Binding button below.
    Bindings decide which column becomes the label, which supplies the values and which drives the colour. Auto Binding guesses them from your headers, so check it rather than assume it.
  5. 05

    Order the categories on purpose

    Sort by a series that matters, or keep a natural order such as quarters or age brackets. Alphabetical order almost never tells the right story, and getting this right does more for readability than any colour choice later.

  6. 06

    Lock a colour to each series

    Assign one fixed colour per series and leave it alone. The legend is the only thing telling a reader which bar in group four matches which bar in group one, so a colour that shifts partway through a report undoes that link.

    The PlotSet editor on the Preview tab: a finished Grouped Bar Chart on the canvas, with the settings panel outlined in red down the right-hand side.
    The Preview tab for a Grouped Bar Chart. Every styling control lives in the outlined panel, each on its own tab: appearance, header, footer and the options specific to this chart type.
  7. 07

    Widen the gap between groups

    Check that the space between categories is clearly bigger than the space between bars inside a category. If PlotSet's default gap looks tight, increase it in the chart settings until each group reads as one unit rather than a continuous row of bars.

  8. 08

    Publish, embed or export

    Publish for a live, interactive chart with hover tooltips and a shareable link, grab the embed code for a page, or export a PNG, SVG or PDF for a deck or report.

Start from the Grouped Bar Chart template with sample data already loaded, then swap in your own.

Open the template

Publish, embed or export it

The last stretch is the same for every chart type: Share turns the chart into a live public link and an embed code, Export writes it out as a static file.

Share: public link and embed code

Activating the embed code and public link publishes the chart. The link is safe to send to anyone, and the embed code drops into any page as an iframe that keeps the hover tooltips and the interactivity. Edit the chart later and hit Recreate to push those changes out to both.

The PlotSet editor toolbar with the Share button highlighted, sitting next to the Export button.
Share is how a finished chart becomes a public link and an embed code.
PlotSet's Share dialog: the toggle activating the embed code and public link, buttons for Link, Embed, Facebook, Reddit, Twitter, LinkedIn and Email, and the public chart link with a Copy button.
Switch on the embed code and public link, then copy the link or take the iframe. Recreate pushes later edits out to everyone already holding it.

Export: SVG, PNG or JPG

Export writes a static copy at whatever size you need. SVG stays sharp at any scale and can still be edited in a design tool; PNG and JPG are the safe choices for slides and documents. The scale multiplier is what gets you a crisp image on a retina screen.

The PlotSet editor toolbar with the Export button highlighted.
Export is the route to a static file for a slide or a report.
PlotSet's Export chart dialog: a 2x scale selector, width and height fields set to 1000 by 600, and the open format menu listing SVG, PNG and JPG.
SVG stays sharp at any size and stays editable in a design tool; PNG and JPG are the safe picks for a deck. Set the scale before you export so the image is crisp on a retina screen.

Styling tips for a Grouped Bar Chart

Two series is ideal, four is the ceiling

Below three bars per group, comparisons are instant. Past four, the eye starts losing track of which colour belongs to which series across groups. If you have more, drop the series nobody asks about or split into small multiples.

Keep the axis at zero

Every bar's length is the thing being compared, so a truncated axis exaggerates every gap between series. If two series are close in value, add value labels instead of zooming the axis in.

Horizontal bars for long category names

If your categories are department names, product names or survey questions rather than short codes, switch the chart to horizontal. Long labels get a full line each with nothing rotated or truncated.

Put the legend in series order

Set the legend to list series in the same left-to-right order they appear inside each group. It saves the reader a lookup on every single group instead of just the first one.

Common mistakes when making a Grouped Bar Chart

One column loaded as a giant series instead of several

This usually means the sheet was still in long format, category and series stacked into extra rows, when it was uploaded. Pivot the data into one column per series in your spreadsheet, then re-upload or reconnect the sheet.

Groups blur into one continuous row of bars

This happens when the gap between categories is set too close to the gap between bars inside a category. Open the chart's spacing controls and increase the group gap until each category is visibly separated from its neighbour.

A series changes colour partway through the chart

This is almost always a manual colour override on one group that didn't get applied everywhere. Remove the one-off override and assign colour by series globally, in the legend or series settings, so the mapping stays fixed across every group.

Learn more about the Grouped Bar Chart

Not sure the Grouped Bar Chart is the right choice? See what it is, when to use it and when not to.

About the Grouped Bar Chart

Grouped Bar Chart: common questions

Wide format: one row per category and one column per series, with the category name in the first column. A quarterly revenue sheet with columns for each product line is a typical example. CSV and .xlsx both work, and a pasted range from any spreadsheet tool is fine too.

Make your Grouped Bar Chart now

Free to start with 300+ templates. No credit card required.