Stacked Area

Category: Charts

Live preview
Monthly active users by plan (thousands)
0
50
100
150
200
Jan
Feb
Mar
Apr
May
Jun
FreeProTeam
The top edge is the total of all layers; each layer’s thickness is its own value, and the exact values are in the table.
PointFreeProTeam
Jan42186
Feb48229
Mar552712
Apr613318
May703824
Jun784631

A stacked area chart: one coloured layer per series, stacked on a zero baseline over an ordered x axis (time, stages, categories), so the top edge is the total and each layer's thickness is that series' value. Drawn as SVG with a zero-based value axis, a legend and a hidden data table. The optional offset turns it into a 100% share chart (expand), a centred chart (silhouette) or a streamgraph (wiggle). Before 2026-10-21 the default was a list of horizontal bars; layout 'bars' still draws that.

Surfaces
webgoogle-meet-stagegoogle-apps-script-webmcp-appsandroid
Fields
FieldTypeRequired
titlestring (optional, e.g., 'SaaS Cumulative Workloads')optional
labelslist of strings representing X-axis ticks (e.g., ['Q1', 'Q2', 'Q3', 'Q4'])required
serieslist of dictionaries representing stacked layers: [{'label': 'Enterprise', 'data': [10, 25, 45, 60], 'color': '#00f2ff'}, ...]required
layoutstring (optional, default 'area'): 'area' draws the stacked area chart (SVG, zero baseline, value axis). 'bars' draws a list of horizontal stacked bars, one row per label; that was the only drawing before 2026-10-21 and 'bars' keeps it unchanged. Absent, null or any other value means 'area'. The bar list ignores offset (a note says so when one is given).optional
offsetstring (optional, area layout only): how the layers sit on the baseline. Absent, 'none' or anything else is the plain zero baseline. 'expand' scales every point to 100% (a 0-100% axis), 'silhouette' centres the layers on a middle line, 'wiggle' is a streamgraph (d3's wiggle baseline, layers ordered inside-out). silhouette and wiggle have no value axis (the baseline means nothing); the hidden table lists the raw values. Up to 12 series and 60 labels; negative or non-numeric cells draw as 0 and are counted in a note.optional
versioninteger (optional, default 1). The stacked_area contract the payload was written for. Only version 1 exists; a higher whole number draws as version 1 with a note.optional
Example payload
{
  "type": "stacked_area",
  "labels": [
    "Category A",
    "Category B",
    "Category C",
    "Category D"
  ],
  "series": [
    {
      "label": "Series A",
      "data": [
        10,
        20,
        30,
        40
      ]
    },
    {
      "label": "Series B",
      "data": [
        5,
        15,
        25,
        35
      ]
    }
  ]
}
ARD catalog entry
{
  "identifier": "urn:air:a2uicatalog.ai:atom:stacked_area",
  "displayName": "Stacked Area",
  "type": "application/vnd.a2ui.atom+json",
  "url": "https://a2uicatalog.ai/atoms/stacked_area/",
  "capabilities": [
    "web",
    "google-meet-stage",
    "google-apps-script-web",
    "mcp-apps",
    "android"
  ],
  "description": "A stacked area chart: one coloured layer per series, stacked on a zero baseline over an ordered x axis (time, stages, categories), so the top edge is the total and each layer's thickness is that series' value. Drawn as SVG with a zero-based value axis, a legend and a hidden data table. The optional offset turns it into a 100% share chart (expand), a centred chart (silhouette) or a streamgraph (wiggle). Before 2026-10-21 the default was a list of horizontal bars; layout 'bars' still draws that.",
  "representativeQueries": [
    "show a stacked area chart of series layers over an ordered axis (zero baseline, optional 100% / streamgraph offsets)",
    "a stacked area chart: one coloured layer per series, stacked on a zero baseline over an ordered x ax",
    "render a stacked area"
  ]
}
← Full ARD catalog
Deploy your own Google Apps Script renderer

The renderer is an open-source Google Apps Script web app. Deploy your own instance in 4 commands — you own the URL, no dependency on the demo endpoint.

git clone https://github.com/a2uicatalog/a2ui
cd a2ui/apps-script-surface/gas-wired-renderer
clasp push && clasp deploy
Full deploy guide →