Skip to content
DocsChartsQuadrantLast updated Nov 2, 2026

Quadrant

Items in four zones that tell you what to do. Sample data: products by growth (−20% to +60%) and margin (0 to 60%), grow, protect, fix margin and review.

Open in
Portfolio map12 product lines by sales growth and gross margin, split at +15% growth and 30% margin: 4 grow, 3 protect, 3 fix margin, 2 review.60%40%20%0PROTECTGROWREVIEWFIX MARGINLinenDenimSocksBoots−20%0+20%+40%+60%GROWPROTECTFIX MARGINREVIEW
Portfolio map
ProductGrowthMarginQuadrant
Linen+42%48%Grow
Denim+8%44%Protect
Knit+28%36%Grow
Socks−8%22%Review
Boots+34%18%Fix margin
Caps+4%38%Protect
Belts−12%12%Review
Tees+18%26%Fix margin
Scarf+50%34%Grow
Bags+22%52%Grow
Kids−2%30%Protect
Swim+46%14%Fix margin
Portfolio map12 product lines by sales growth and gross margin, split at +15% growth and 30% margin: 4 grow, 3 protect, 3 fix margin, 2 review.60%40%20%0PROTECTGROWREVIEWFIX MARGINLinenDenimSocksBoots−20%0+20%+40%+60%GROWPROTECTFIX MARGINREVIEW
Portfolio map
ProductGrowthMarginQuadrant
Linen+42%48%Grow
Denim+8%44%Protect
Knit+28%36%Grow
Socks−8%22%Review
Boots+34%18%Fix margin
Caps+4%38%Protect
Belts−12%12%Review
Tees+18%26%Fix margin
Scarf+50%34%Grow
Bags+22%52%Grow
Kids−2%30%Protect
Swim+46%14%Fix margin

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 Quadrant component to your project.

    npx shadcn add @chartory/quadrant
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { Quadrant }  from "@/components/chartory/quadrant"<Quadrant  data={productQuadrant}  size="m"  legend/>

Props

<Quadrant>

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.QuadrantDataRequired
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
color: The data colour of the primary marks (data/primary)."cat-1" | "cat-2" | "cat-3" | "cat-4""cat-1"

QuadrantData

The data prop: one object for the whole chart.

PropTypeDefault
pts: One entry per point.QuadrantPoint[]Required
xmin: The left end of the x scale.numberRequired
xmax: The right end of the x scale.numberRequired
ymin: The bottom of the y scale.numberRequired
ymax: The top of the y scale.numberRequired
mx: The x split.numberRequired
my: The y split.numberRequired
ticks: The axis tick labels.string[]Required
xt: The x axis ticks: [value, label] pairs.[number, string][]Required
quads: The four quadrant labels.[string, string, string, string]Required

QuadrantPoint

One object per entry in pts.

PropTypeDefault
label: The name shown on the chart.stringRequired
x: The x value.numberRequired
y: The y value.numberRequired
r: The point's radius value.numberRequired
show?: Shows the point's label.booleanfalse

The data as a JSON Schema: schemas/quadrant.json

Quadrant chart: a React and Figma chart in four sizes

What does a quadrant chart show?

A quadrant chart splits a scatter into four zones by two thresholds and names each zone with an action. Items land where they belong: grow, protect, fix margin or review. Use it for product portfolios, accounts or features.

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 Quadrant component?

It is one <Quadrant> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is two values per item, two thresholds.

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 the zones carry actions? Yes means the quadrant fits.
  • Are there two measures? Yes means the quadrant fits.
  • Is it items, not models? Yes means the quadrant fits.

When does another type fit better?

  • A plain link between measures. Use Scatter instead.
  • More measures. Use Parallel coordinates instead.
  • Models on a cost frontier. Use Frontier map instead.

Quadrant 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.