Skip to content
DocsChartsGrouped barsLast updated Nov 2, 2026

Grouped bars

A few series, side by side in each period. Sample data: new paid accounts per month by plan (Starter, Team, Business), July to December.

Open in
Signups by planNew paid accounts per month by plan, July to December 2026: Starter 2,980, Team 1,960, Business 880; December has Starter 570, Team 410 and Business 190.6004002000JULAUGSEPOCTNOVDECSTARTERTEAMBUSINESS
Signups by plan
MonthStarterTeamBusiness
JUL420260110
AUG460300120
SEP510290150
OCT480340140
NOV540360170
DEC570410190
Signups by planNew paid accounts per month by plan, July to December 2026: Starter 2,980, Team 1,960, Business 880; December has Starter 570, Team 410 and Business 190.6004002000JULAUGSEPOCTNOVDECSTARTERTEAMBUSINESS
Signups by plan
MonthStarterTeamBusiness
JUL420260110
AUG460300120
SEP510290150
OCT480340140
NOV540360170
DEC570410190

Installation

  1. 1

    Set up the registry once

    This chart is free in Hearth and MIT licensed: no token. Add @chartory to components.json once (the URL alone, no headers), or skip this when another chart is already installed.

    Installation guide
  2. 2

    Add the chart

    One command adds the Grouped bars component to your project.

    npx shadcn add @chartory/grouped-bars
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { GroupedBars }  from "@/components/chartory/grouped-bars"<GroupedBars  data={paidByPlan}  size="m"  legend/>

Props

<GroupedBars>

Every prop but data is a Figma property with the same name and values.

PropTypeDefault
data: The chart's data. The tables below list every field.GroupedBarsDataRequired
size: The size class. Each one is laid out again from the data."xs" | "s" | "m" | "l""m"
legend: Shows the legend row under the plot.booleantrue

GroupedBarsData

The data prop: one object for the whole chart.

PropTypeDefault
cats: The category labels, in order.string[]Required
max: The top of the value scale.numberRequired
ticks: The axis tick labels.string[]Required
series: One entry per series.GroupedBarsSeries[]Required

GroupedBarsSeries

One object per entry in series.

PropTypeDefault
name: The name shown on the chart.stringRequired
tok: The colour token, e.g. "data/primary".stringRequired
vals: The values, in order.number[]Required

The data as a JSON Schema: schemas/grouped-bars.json

Grouped bar chart: a React and Figma chart in four sizes

What does a grouped bar chart show?

A grouped bar chart places a small set of bars in each period, one per series, so you can compare the series inside a period and follow each one across periods. Use it for plans, regions or products counted the same way.

Chartory ships it as a Figma component and a React component with the same name. The code installs from the shadcn registry with one command and lands in your project as a file you own.

What is the Grouped bars component?

It is one <GroupedBars> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is two to four series, one value per period.

Sizes XS, S, M and L re-lay the chart out from the data instead of scaling it, so labels stay readable at every size.

When should I use it?

  • Do you compare series inside each period? Yes means the grouped bars fit.
  • Are there four series or fewer? Yes means the grouped bars fit.
  • Are the periods few? Yes means the grouped bars fit.

When does another type fit better?

  • The total per period matters. Use Stacked bars instead.
  • Too many bars per group. Use Multi-line chart instead.
  • Many periods read better as lines. Use Multi-line chart instead.

Grouped bar questions

Installing, data, Figma and plans.

  • Yes. It installs through the shadcn registry with the shadcn CLI, and the file lands in your project.

Stay in the loop

New charts, by email.

Get an email when new chart types and releases ship.

Unsubscribe any time.