Scatter Matrix

Category: Charts

Live preview
Flower measures
  • 1 Sepal length (4.4 to 7)
  • 2 Sepal width (2.3 to 3.9)
  • 3 Petal length (1.3 to 6)
RowSepal lengthSepal widthPetal length
15.13.51.4
24.931.4
34.73.21.3
44.63.11.5
553.61.4
65.43.91.7
74.63.41.4
853.41.5
94.42.91.4
104.93.11.5
1173.24.7
126.43.24.5
136.93.14.9
145.52.34
156.52.84.6
166.33.36

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

Surfaces
webgoogle-apps-script-webmcp-appsandroid
Degraded on
SurfaceNote
pdfPrints the finished picture; no motion
Fields
FieldTypeRequired
titlestring (optional, max 80).optional
dimensionsarray (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_upperboolean (optional, default false). Only true also draws the upper half (the same plots with the axes swapped).optional
versioninteger (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
Example payload
{
  "type": "scatter_matrix"
}
ARD catalog entry
{
  "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"
  ]
}
← 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 →