Category: Charts
A scatter plot matrix (Plotly splom): 2 to 6 numeric dimensions on one grid, every dimension on a shared axis across its row and column, so each cell plots one dimension against another and a pattern between any two shows at a glance. Below the diagonal each cell is a small scatter plot of every complete row (the upper half too with show_upper); the diagonal names the dimension; wide pages also show each dimension's range on the outer edges. Each axis comes from d3 nice() and ticks() on the server, so there is no script. A legend lists every dimension with its range and a hidden table gives every value of every row. Static: no hover or brushing. Motion-ready: each cell fades in through --k from --p (default 1).
| Surface | Note |
|---|---|
| Prints the finished picture; no motion |
| Field | Type | Required |
|---|---|---|
| title | string (optional, max 80). | optional |
| dimensions | array (required, 2 to 6) of {label (string, max 24, default "Dimension n"), values (array of numbers)}. Row r is the r-th value of every dimension. A row where any dimension has no finite number up to 1e12 in size is left out and counted in a note; an entry that is not a dimension with a list of values is left out with a note; dimensions beyond the first 6 are noted and not drawn. At most 200 complete rows are read; later rows are noted and not drawn. With fewer than 2 dimensions or 2 complete rows a note replaces the chart. | required |
| show_upper | boolean (optional, default false). Only true also draws the upper half (the same plots with the axes swapped). | optional |
| version | integer (optional, default 1). The scatter_matrix contract the payload was written for. Only version 1 exists; a higher whole number is drawn as version 1 with a note. | optional |
{
"type": "scatter_matrix"
}
{
"identifier": "urn:air:a2uicatalog.ai:atom:scatter_matrix",
"displayName": "Scatter Matrix",
"type": "application/vnd.a2ui.atom+json",
"url": "https://a2uicatalog.ai/atoms/scatter_matrix/",
"capabilities": [
"web",
"google-apps-script-web",
"mcp-apps",
"android"
],
"description": "A scatter plot matrix (Plotly splom): 2 to 6 numeric dimensions on one grid, every dimension on a shared axis across its row and column, so each cell plots one dimension against another and a pattern between any two shows at a glance. Below the diagonal each cell is a small scatter plot of every complete row (the upper half too with show_upper); the diagonal names the dimension; wide pages also show each dimension's range on the outer edges. Each axis comes from d3 nice() and ticks() on the server, so there is no script. A legend lists every dimension with its range and a hidden table gives every value of every row. Static: no hover or brushing. Motion-ready: each cell fades in through --k from --p (default 1).",
"representativeQueries": [
"show a scatter_matrix: every measure plotted against every other",
"a scatter plot matrix (plotly splom): 2 to 6 numeric dimensions on one grid, every dimension on a sh",
"render a scatter matrix"
]
}
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 →