Bubble chart
chart.bubble
Overview
Render exact positioned bubbles, visible zero-size records, supplied trajectories, and references without packing, displacement, sampling, or inferred analysis. svg is a complete static, script-free chart. Mark highlight, the dotted guide, and the value panel are not in that SVG, and entry motion, focus, and updates stay inactive there. Pass the entire output.behavior.artifact unchanged to SquillifyChartRuntime.mount(container, artifact, options), then call the returned handle's replay() once to play the entry. A later value change uses update(nextArtifact, {intent}). Injecting svg directly leaves hover and motion off. Interaction is on by default for every host chart: after mount, pointer and keyboard focus open the value panel and the dotted guide. Set behavior.interaction.enabled to false to turn that off. motion.preset accepts only the family's entrance.
A third quantitative variable requires exact area semantics, explicit zero handling, and full-extent refusal without falsifying x/y positions.
Reliability
We keep your zero-size records visible and exact; paint order never changes response or focus order. Declared failures: BUBBLE_RECORD_INVALID — trigger: a bubble id, exact coordinate, label, or item bound is invalid; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. BUBBLE_SIZE_INVALID — trigger: a bubble size is negative or not an exact decimal string; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. BUBBLE_SCALE_INVALID — trigger: an axis or area scale cannot represent the supplied exact domain; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. BUBBLE_GROUP_INVALID — trigger: a group id repeats or a bubble references an absent group; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. BUBBLE_TRAJECTORY_INVALID — trigger: a trajectory id repeats or its ordered bubble IDs are invalid; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. CHART_CAPACITY_EXCEEDED — trigger: full bubble radii, labels, references, trajectories, targets, or bytes cannot fit the requested canvas; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. CHART_OUTPUT_TOO_LARGE — trigger: the inline SVG byte budget would be exceeded at the requested size and data density; retryable: no; unchanged input: will not succeed; next: follow the recovery intent in the error details. CHART_UNSAFE_OUTPUT — trigger: the finished SVG failed our final safety re-validation (this is on us, not your data); retryable: no; unchanged input: will not succeed; next: contact support with the request id — retrying the same input will not help. CHART_OUTPUT_TOO_COMPLEX — trigger: the render hit a structural complexity ceiling (elements, depth, text volume, or path commands) separate from the byte budget; retryable: no; unchanged input: will not succeed; next: contact support with the request id — retrying the same input will not help.
Context footprint
Capacity prices full radii, labels, trajectories, overlap, behavior, SVG complexity, and bytes before layout. A successful call costs 4 execution credits.
When to use it
When x, y, and non-negative size are already calculated.
When marks should be packed, moved, sampled, or inferred.
Scope
Non-goals
- Packing or collision displacement
- Sampling or aggregation
- Inferred trajectories or statistics
- Geographic projection
Properties
Capabilities
Cost & billing
Flat rate per invocation
File handling
How we handle your data
What this means
This skill may receive sensitive content and may return submitted, transformed, extracted, or reformatted content.
Squillify guarantees
- Runs inside Squillify
- This skill runs inside Squillify.
- Payloads are not sent to an external service by this skill.
- Squillify does not permanently store submitted payloads.
- Telemetry records metadata only, not submitted content.
- Submitted payloads are not used for training.
- Submitted payloads are not reviewed by humans.
- This skill does not target sensitive data.
- The response may contain submitted or transformed content.
Your responsibility
Squillify does not determine whether submitted content is sensitive. Your application is responsible for deciding what data it is allowed to submit. Your application is responsible for securing the response.
Input schema
| Field | Type | Required | Description |
|---|---|---|---|
| bubbles | array | Yes | 1..5000 closed bubbles with exact decimal-string x, y, and non-negative size. |
| groups | array | No | Optional array of 0..24 objects with unique id and optional label in caller order; omit it when bubbles are ungrouped. |
| xAxis | object | No | Optional object with label, linear/log10/symlog scale, exact domain, ticks, format, grid, and reversal; omit for an inferred linear horizontal domain. |
| yAxis | object | No | Optional object with label, linear/log10/symlog scale, exact domain, ticks, format, grid, and reversal; omit for an inferred linear vertical domain. |
| sizeScale | object | No | Optional object with sqrtArea or logArea type, exact domain, and minRadius/maxRadius properties; omit for inferred sqrt-area scaling. |
| zeroSize | string | No | hollowMinimum is the default when omitted; zero remains an exact accessible record. |
| paintOrder | string | No | input, largestFirst (default), or smallestFirst; changes z-order only. |
| labels | object | No | Optional object with mode none, selected, or all and unique bubbleIds for selected mode; default none when omitted. |
| referenceLines | array | No | Optional array of objects with id, axis, exact value, label, and meaning; at most 24 references combined and none when omitted. |
| referenceRegions | array | No | Optional array of objects with id, axis bounds, label, and meaning; at most 24 references combined and none when omitted. |
| trajectories | array | No | Optional array of at most 32 objects with id, ordered bubbleIds, label, and meaning; omit it for no supplied paths. |
| legend | object | No | Closed visible setting for group and quantitative size keys; omit it for automatic visibility. |
| layout | object | No | Optional object with margin, plotPadding, and insufficient-space policy; omit it for certified default geometry. |
| width | integer | No | Canvas width in pixels, 100..1600 (optional; default 800). Outside that range the request is refused as invalid input rather than clamped. The ceiling is the size a chart is read at — a full-HD dashboard or a report page; beyond it the canvas stops being what limits how much fits, and type sized for the canvas is illegible once the export is displayed smaller. It applies per side, so a tall portrait canvas for a long horizontal ranking is allowed. |
| height | integer | No | Canvas height in pixels, 100..1600 (optional; default 500). Outside that range the request is refused as invalid input rather than clamped. The ceiling is the size a chart is read at — a full-HD dashboard or a report page; beyond it the canvas stops being what limits how much fits, and type sized for the canvas is illegible once the export is displayed smaller. It applies per side, so a tall portrait canvas for a long horizontal ranking is allowed. |
| title | string | No | Heading drawn above the plot (optional; at most 1024 code points). Omit it and the chart renders untitled — we never invent a title from your data. One code point past that ceiling is refused as TOOL_INPUT_INVALID. |
| subtitle | string | No | Second line under the title, useful for the period covered or the unit (optional; at most 1024 code points). Omit it and no second line is drawn. |
| caption | string | No | Optional bounded caption drawn below the plot; omit it and no caption is emitted. |
| source | string | No | Optional bounded source attribution; omit it and no source line is emitted. |
| period | string | No | Optional bounded reporting-period label; omit it and no period line is emitted. |
| theme | string | No | Visual language: basic, modern or squillify (optional; default squillify). An unregistered value is rejected with the registered names listed — we never substitute silently. |
| surface | string | No | Surface the theme renders on: dark or light (optional; default light). |
| density | string | No | How tightly the chrome is packed: compact, standard or spacious (optional; default standard). Density scales spacing only — it never lowers a legibility minimum. |
| visualProfile | string | No | What the SVG promises about the host font: portable or certified (optional; default portable). The default is layout-deterministic and tolerates substitution; certified refuses text the certified metrics cannot fully measure. |
| localization | object | No | Optional closed object with locale and number-format properties for visible text only; omit it for the default locale. |
| style | object | No | Optional bounded paint and typography styling; omit it to use the selected theme defaults. text.size is expressed in normalized design pixels at an 800-pixel reference width, so equivalent roles match at equal CSS width. It never changes data or accessibility. 'contract' selects the published semantics. 'tokens' sets design tokens; 'rules' applies typed properties to a role and optional series/category facets; 'palette' accepts a digest-checked palette; 'css' is a bounded post-layout stylesheet. The styleCapabilities section publishes this family's accepted roles, properties and copyable examples. For Bar, target one mark with role 'bar' plus seriesIndex and categoryIndex; categoryIndex alone targets that category across series. A minimal rule is {"target":{"role":"bar"},"set":{"paint.fill":"#2563eb"}}. Unsupported typed rules are refused; unsupported CSS is dropped and reported. Do not discover the grammar through trial calls: style validation failures are currently billable. Before calling, read this contract's styleSurface and styleCapabilities sections for the complete rule shape, accepted roles and properties, limits, and copyable examples. |
| behavior | object | No | Optional object for enter_bubbles, update_bubbles, focus_bubble, focus_group, and trace_bubbles; omit for static SVG. svg is a complete static, script-free chart. Mark highlight, the dotted guide, and the value panel are not in that SVG, and entry motion, focus, and updates stay inactive there. Pass the entire output.behavior.artifact unchanged to SquillifyChartRuntime.mount(container, artifact, options), then call the returned handle's replay() once to play the entry. A later value change uses update(nextArtifact, {intent}). Injecting svg directly leaves hover and motion off. Interaction is on by default for every host chart: after mount, pointer and keyboard focus open the value panel and the dotted guide. Set behavior.interaction.enabled to false to turn that off. motion.preset accepts only the family's entrance. |
| accessibility | object | No | Optional object with detail and maxItems properties; omit it for the default bounded bubble reading order. |
| output | object | No | Output scoping (optional). Nested key output.idNamespace ([a-z][a-z0-9-]{0,31}) is prefixed onto every generated element id when several charts share one host document; omit for a standalone chart. An invalid namespace is rejected. |
Output schema
| Field | Type | Required | Description |
|---|---|---|---|
| svg | string | Yes | Allowlist-checked SVG. svg is a complete static, script-free chart. Mark highlight, the dotted guide, and the value panel are not in that SVG, and entry motion, focus, and updates stay inactive there. Pass the entire output.behavior.artifact unchanged to SquillifyChartRuntime.mount(container, artifact, options), then call the returned handle's replay() once to play the entry. A later value change uses update(nextArtifact, {intent}). Injecting svg directly leaves hover and motion off. Interaction is on by default for every host chart: after mount, pointer and keyboard focus open the value panel and the dotted guide. Set behavior.interaction.enabled to false to turn that off. motion.preset accepts only the family's entrance. |
| width | integer | Yes | Rendered width in pixels. |
| height | integer | Yes | Rendered height in pixels. |
| viewBox | string | Yes | SVG viewBox string (for example "0 0 800 400"). |
| bubbleResults | array | Yes | Caller-order exact values, projected radius/area, floor, z-order, and target. |
| groupResults | array | Yes | Array of caller-order group objects with id, label, count, and exact x/y/size ranges. |
| axisResults | object | Yes | Object with resolved exact x, y, and size domains, scale types, ticks, and radius range. |
| trajectoryResults | array | Yes | Array of caller-supplied trajectory objects with id, label, meaning, ordered bubble IDs, and stable target identity. |
| referenceResults | array | Yes | Array of exact supplied line and region objects with stable IDs, values, labels, and target identities. |
| accessibility | object | No | Optional object containing bounded data-equivalent reading text, detail level, and truncation metadata. |
| renderSummary | object | Yes | Object with bounded bubble, group, reference, trajectory, label, floor, and target counts or flags. |
| transformationSummary | object | Yes | Object proving no packing, displacement, sampling, aggregation, size mutation, or inferred analysis occurred. |
| styleReport | object | No | Always reports the resolved typographyProfile and fontMetrics contract, plus tokensApplied, rulesApplied, typedRulesApplied, typedAssignmentsApplied, rulesDropped, declarationsDropped and, when anything was dropped, a bounded list of reasons. |
| warnings | array | No | Present when the render succeeded with a known degradation. Each entry is an object with a stable code, a message and details. Every chart can emit FONT_SUBSTITUTION_POSSIBLE under visualProfile 'portable', FONT_GLYPH_UNMEASURED when a code point falls outside the certified metrics, and CHART_STYLE_PARTIALLY_APPLIED when part of your styling was dropped — styleReport then names which part and why. Codes are stable for agent routing. |
| behavior | object | No | Resolved default-on motion and interaction report. Includes the digest-bound host artifact when behavior is enabled and always preserves a complete script-free SVG. svg is a complete static, script-free chart. Mark highlight, the dotted guide, and the value panel are not in that SVG, and entry motion, focus, and updates stay inactive there. Pass the entire output.behavior.artifact unchanged to SquillifyChartRuntime.mount(container, artifact, options), then call the returned handle's replay() once to play the entry. A later value change uses update(nextArtifact, {intent}). Injecting svg directly leaves hover and motion off. Interaction is on by default for every host chart: after mount, pointer and keyboard focus open the value panel and the dotted guide. Set behavior.interaction.enabled to false to turn that off. motion.preset accepts only the family's entrance. |
API contract
POST /v1/executecurl -sS -X POST "$BASE/v1/execute" \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"skillKey":"chart.bubble","input":{"bubbles":[{"id":"alpha","x":"72","y":"18.4","size":"2400000"}]}}'import { Squillify } from "@squillify/sdk";
const sq = new Squillify({ apiKey: process.env.SQUILLIFY_API_KEY });
const { output } = await sq.execute("chart.bubble", {"title":"Portfolio position","groups":[{"label":"Core","id":"core"},{"label":"New","id":"new"}],"bubbles":[{"x":"72","y":"18.4","size":"2400000","id":"alpha","label":"Alpha","group":"core"},{"x":"58","y":"11.9","size":"0","id":"beta","label":"Beta","group":"new"}]});Errors
| Code | HTTP | Retryable | Description |
|---|---|---|---|
| VALIDATION_ERROR | 400 | No | The request payload failed schema validation. |
| UNAUTHORIZED | 401 | No | Missing or invalid API key. |
| SKILL_NOT_ACCESSIBLE | 403 | No | The API key is not granted access to this skill. |
| SKILL_NOT_AVAILABLE_FOR_PLAN | 403 | No | This skill is not included in your current plan. |
| PLAN_ELIGIBILITY_UNAVAILABLE | 503 | Yes | Plan eligibility could not be decided. Retry after backoff. |
| SKILL_NOT_FOUND | 404 | No | The requested skill or version does not exist. |
| TENANT_RATE_LIMITED | 429 | Yes | Request rate limit exceeded. Retry after backoff. |
| QUOTA_EXCEEDED | 429 | Yes | Plan quota exhausted. Retryable once the quota period resets. |
| EXECUTION_TIMEOUT | 504 | Yes | Execution exceeded the allowed time budget. |
| BUBBLE_RECORD_INVALID | 400 | No | The request payload failed this skill's input validation. |
| BUBBLE_SIZE_INVALID | 400 | No | The request payload failed this skill's input validation. |
| BUBBLE_SCALE_INVALID | 400 | No | The request payload failed this skill's input validation. |
| BUBBLE_GROUP_INVALID | 400 | No | The request payload failed this skill's input validation. |
| BUBBLE_TRAJECTORY_INVALID | 400 | No | The request payload failed this skill's input validation. |
| CHART_CAPACITY_EXCEEDED | 429 | No | A size, quota, rate, or time limit was exceeded. |
| CHART_OUTPUT_TOO_LARGE | 429 | No | A size, quota, rate, or time limit was exceeded. |
| CHART_UNSAFE_OUTPUT | 500 | No | The skill encountered an unexpected execution failure. |
| CHART_OUTPUT_TOO_COMPLEX | 500 | No | The skill encountered an unexpected execution failure. |
Other limits
| Limit | Value |
|---|---|
| Recommended inline bytes | 32 KiB |
Limitations
- Packing or collision displacement
- Sampling or aggregation
- Inferred trajectories or statistics
- Geographic projection
- Position without x/y meaning
- A geographic map
- Unbounded records
How to call
POST /v1/execute (requires authentication)
{
"skillKey": "chart.bubble",
"input": {
"title": "Portfolio position",
"groups": [
{
"label": "Core",
"id": "core"
},
{
"label": "New",
"id": "new"
}
],
"bubbles": [
{
"x": "72",
"y": "18.4",
"size": "2400000",
"id": "alpha",
"label": "Alpha",
"group": "core"
},
{
"x": "58",
"y": "11.9",
"size": "0",
"id": "beta",
"label": "Beta",
"group": "new"
}
]
}
}Examples
Portfolio position
{
"title": "Portfolio position",
"groups": [
{
"label": "Core",
"id": "core"
},
{
"label": "New",
"id": "new"
}
],
"bubbles": [
{
"x": "72",
"y": "18.4",
"size": "2400000",
"id": "alpha",
"label": "Alpha",
"group": "core"
},
{
"x": "58",
"y": "11.9",
"size": "0",
"id": "beta",
"label": "Beta",
"group": "new"
}
]
}{
"height": 500,
"viewBox": "0 0 800 500",
"groupResults": [
{
"id": "core",
"label": "Core",
"count": 1,
"xMin": "72",
"xMax": "72",
"yMin": "18.4",
"yMax": "18.4",
"sizeMin": "2400000",
"sizeMax": "2400000"
},
{
"id": "new",
"label": "New",
"count": 1,
"xMin": "58",
"xMax": "58",
"yMin": "11.9",
"yMax": "11.9",
"sizeMin": "0",
"sizeMax": "0"
}
],
"renderSummary": {
"variation": "bubble",
"bubbleCount": 2,
"groupCount": 2,
"zeroBubbleCount": 1,
"sizeFloorCount": 0,
"trajectoryCount": 0,
"sizeScale": "sqrt_area",
"paintOrder": "largest_first"
},
"transformationSummary": {
"applied": false,
"operations": [],
"affectedCategoryCount": 0,
"affectedPointCount": 0,
"affectedLabelCount": 0
},
"accessibility": {
"title": "Portfolio position",
"detail": "full",
"description": "Bubble chart. 2 exact observations; size scale sqrt_area; 2 declared groups. Bubbles: Alpha x 72 y 18.4 size 2400000 2400000, Beta x 58 y 11.9 size 0 0. All values are listed."
},
"referenceResults": [],
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"500\" viewBox=\"0 0 800 500\" role=\"img\" class=\"sq-chart sq-chart--bubble sq-family--relationship sq-theme--squillify sq-surface--light sq-density--standard\" data-sq-style-contract=\"CHART_STYLE@1\" data-sq-chart=\"bubble\" data-sq-family=\"relationship\" data-sq-theme=\"squillify\" data-sq-theme-version=\"1\" data-sq-surface=\"light\" data-sq-density=\"standard\" data-sq-a11y-detail=\"full\" aria-labelledby=\"sq-f142e49dd5c3-title-0 sq-f142e49dd5c3-desc-1\"><title id=\"sq-f142e49dd5c3-title-0\">Portfolio position</title><desc id=\"sq-f142e49dd5c3-desc-1\">Bubble chart. 2 exact observations; size scale sqrt_area; 2 declared groups. Bubbles: Alpha x 72 y 18.4 size 2400000 2400000, Beta x 58 y 11.9 size 0 0. All values are listed.</desc><style>.sq-chart{--sq-chart-axis:#c9d1df;--sq-chart-font-family:'Squillify Mono', 'IBM Plex Mono', monospace;--sq-chart-grid:#d8dee9;--sq-chart-surface:#ffffff;--sq-chart-text-muted:#667085;--sq-chart-text-primary:#101828;--sq-series-1:#2563eb;--sq-series-2:#6d5ce7;--sq-series-3:#168a5b;--sq-series-4:#c45412;--sq-series-5:#d92d20;--sq-series-6:#667085;font-family:var(--sq-chart-font-family);font-weight:500;}.sq-chart .sq-background{fill:var(--sq-chart-surface);}.sq-chart .sq-grid{stroke:var(--sq-chart-grid);}.sq-chart .sq-axis{stroke:var(--sq-chart-axis);}.sq-chart .sq-title{fill:var(--sq-chart-text-primary);}.sq-chart .sq-tick-label{fill:var(--sq-chart-text-muted);}.sq-chart .sq-legend-label{fill:var(--sq-chart-text-primary);}.sq-chart .sq-legend-swatch[data-sq-palette-index=\"0\"]{fill:var(--sq-series-1);}.sq-chart .sq-legend-swatch[data-sq-palette-index=\"1\"]{fill:var(--sq-series-2);}</style><rect x=\"0\" y=\"0\" width=\"800\" height=\"500\" fill=\"#ffffff\" class=\"sq-background\" data-sq-role=\"background\"/><g class=\"sq-plot\" data-sq-role=\"plot\"><line x1=\"157\" y1=\"48\" x2=\"157\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"157\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">56.286</text><line x1=\"245.2\" y1=\"48\" x2=\"245.2\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"245.2\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">59.772</text><line x1=\"333.4\" y1=\"48\" x2=\"333.4\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"333.4\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">63.257</text><line x1=\"421.6\" y1=\"48\" x2=\"421.6\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"421.6\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">66.743</text><line x1=\"509.8\" y1=\"48\" x2=\"509.8\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"509.8\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">70.228</text><line x1=\"598\" y1=\"48\" x2=\"598\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"598\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">73.714</text><line x1=\"157\" y1=\"456\" x2=\"598\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"459.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"48\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">10.68125</text><line x1=\"157\" y1=\"374.4\" x2=\"598\" y2=\"374.4\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"377.9\" font-size=\"10\" text-anchor=\"end\" textLength=\"48\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">12.46875</text><line x1=\"157\" y1=\"292.8\" x2=\"598\" y2=\"292.8\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"296.3\" font-size=\"10\" text-anchor=\"end\" textLength=\"48\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">14.25625</text><line x1=\"157\" y1=\"211.2\" x2=\"598\" y2=\"211.2\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"214.7\" font-size=\"10\" text-anchor=\"end\" textLength=\"48\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">16.04375</text><line x1=\"157\" y1=\"129.6\" x2=\"598\" y2=\"129.6\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"133.1\" font-size=\"10\" text-anchor=\"end\" textLength=\"48\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">17.83125</text><line x1=\"157\" y1=\"48\" x2=\"598\" y2=\"48\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"51.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"48\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">19.61875</text><line x1=\"157\" y1=\"456\" x2=\"598\" y2=\"456\" stroke=\"#c9d1df\" stroke-width=\"1.2\" class=\"sq-axis\" data-sq-role=\"axis-line\"/><line x1=\"157\" y1=\"48\" x2=\"157\" y2=\"456\" stroke=\"#c9d1df\" stroke-width=\"1.2\" class=\"sq-axis\" data-sq-role=\"axis-line\"/><path d=\"M 586.629 103.636 L 586.014 109.879 L 584.193 115.882 L 581.236 121.414 L 577.256 126.263 L 572.407 130.243 L 566.875 133.2 L 560.872 135.021 L 554.629 135.636 L 548.386 135.021 L 542.383 133.2 L 536.851 130.243 L 532.002 126.263 L 528.022 121.414 L 525.065 115.882 L 523.244 109.879 L 522.629 103.636 L 523.244 97.393 L 525.065 91.39 L 528.022 85.858 L 532.002 81.009 L 536.851 77.029 L 542.383 74.072 L 548.386 72.251 L 554.629 71.636 L 560.872 72.251 L 566.875 74.072 L 572.407 77.029 L 577.256 81.009 L 581.236 85.858 L 584.193 91.39 L 586.014 97.393 Z\" fill=\"#2563eb\" stroke=\"#2563eb\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-bubble\" data-sq-role=\"bubble\" data-sq-target-key=\"t-bubble-92b5c9e3ec74d40b\" data-sq-series-index=\"0\" data-sq-point-index=\"0\" data-sq-palette-index=\"0\"/><path d=\"M 204.371 400.364 L 204.294 401.144 L 204.067 401.895 L 203.697 402.586 L 203.199 403.192 L 202.593 403.69 L 201.902 404.06 L 201.151 404.287 L 200.371 404.364 L 199.591 404.287 L 198.84 404.06 L 198.149 403.69 L 197.543 403.192 L 197.045 402.586 L 196.675 401.895 L 196.448 401.144 L 196.371 400.364 L 196.448 399.584 L 196.675 398.833 L 197.045 398.142 L 197.543 397.536 L 198.149 397.038 L 198.84 396.668 L 199.591 396.441 L 200.371 396.364 L 201.151 396.441 L 201.902 396.668 L 202.593 397.038 L 203.199 397.536 L 203.697 398.142 L 204.067 398.833 L 204.294 399.584 Z\" fill=\"none\" stroke=\"#6d5ce7\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-zero-bubble\" data-sq-role=\"zero-bubble\" data-sq-target-key=\"t-bubble-0c34a68e1ab8dd3e\" data-sq-series-index=\"1\" data-sq-point-index=\"1\" data-sq-palette-index=\"1\" data-sq-meaning=\"zero\"/><path d=\"M 622 54 L 621.904 54.975 L 621.619 55.913 L 621.157 56.778 L 620.536 57.536 L 619.778 58.157 L 618.913 58.619 L 617.975 58.904 L 617 59 L 616.025 58.904 L 615.087 58.619 L 614.222 58.157 L 613.464 57.536 L 612.843 56.778 L 612.381 55.913 L 612.096 54.975 L 612 54 L 612.096 53.025 L 612.381 52.087 L 612.843 51.222 L 613.464 50.464 L 614.222 49.843 L 615.087 49.381 L 616.025 49.096 L 617 49 L 617.975 49.096 L 618.913 49.381 L 619.778 49.843 L 620.536 50.464 L 621.157 51.222 L 621.619 52.087 L 621.904 53.025 Z\" fill=\"#2563eb\" stroke=\"#2563eb\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-legend-swatch\" data-sq-role=\"legend-swatch\" data-sq-series-index=\"0\" data-sq-palette-index=\"0\"/><text x=\"628\" y=\"58\" font-size=\"10\" text-anchor=\"start\" textLength=\"24\" lengthAdjust=\"spacing\" fill=\"#101828\" class=\"sq-legend-label\" data-sq-role=\"legend-label\" data-sq-series-index=\"0\">Core</text><path d=\"M 622 72 L 621.904 72.975 L 621.619 73.913 L 621.157 74.778 L 620.536 75.536 L 619.778 76.157 L 618.913 76.619 L 617.975 76.904 L 617 77 L 616.025 76.904 L 615.087 76.619 L 614.222 76.157 L 613.464 75.536 L 612.843 74.778 L 612.381 73.913 L 612.096 72.975 L 612 72 L 612.096 71.025 L 612.381 70.087 L 612.843 69.222 L 613.464 68.464 L 614.222 67.843 L 615.087 67.381 L 616.025 67.096 L 617 67 L 617.975 67.096 L 618.913 67.381 L 619.778 67.843 L 620.536 68.464 L 621.157 69.222 L 621.619 70.087 L 621.904 71.025 Z\" fill=\"#6d5ce7\" stroke=\"#6d5ce7\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-legend-swatch\" data-sq-role=\"legend-swatch\" data-sq-series-index=\"1\" data-sq-palette-index=\"1\"/><text x=\"628\" y=\"76\" font-size=\"10\" text-anchor=\"start\" textLength=\"18\" lengthAdjust=\"spacing\" fill=\"#101828\" class=\"sq-legend-label\" data-sq-role=\"legend-label\" data-sq-series-index=\"1\">New</text><path d=\"M 648 104 L 647.923 104.78 L 647.696 105.531 L 647.326 106.222 L 646.828 106.828 L 646.222 107.326 L 645.531 107.696 L 644.78 107.923 L 644 108 L 643.22 107.923 L 642.469 107.696 L 641.778 107.326 L 641.172 106.828 L 640.674 106.222 L 640.304 105.531 L 640.077 104.78 L 640 104 L 640.077 103.22 L 640.304 102.469 L 640.674 101.778 L 641.172 101.172 L 641.778 100.674 L 642.469 100.304 L 643.22 100.077 L 644 100 L 644.78 100.077 L 645.531 100.304 L 646.222 100.674 L 646.828 101.172 L 647.326 101.778 L 647.696 102.469 L 647.923 103.22 Z\" fill=\"none\" stroke=\"#c9d1df\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-size-legend\" data-sq-role=\"legend-swatch\"/><text x=\"684\" y=\"107.5\" font-size=\"10\" text-anchor=\"start\" textLength=\"6\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-legend-label\" data-sq-role=\"legend-label\">0</text><path d=\"M 676 120 L 675.385 126.243 L 673.564 132.246 L 670.607 137.778 L 666.627 142.627 L 661.778 146.607 L 656.246 149.564 L 650.243 151.385 L 644 152 L 637.757 151.385 L 631.754 149.564 L 626.222 146.607 L 621.373 142.627 L 617.393 137.778 L 614.436 132.246 L 612.615 126.243 L 612 120 L 612.615 113.757 L 614.436 107.754 L 617.393 102.222 L 621.373 97.373 L 626.222 93.393 L 631.754 90.436 L 637.757 88.615 L 644 88 L 650.243 88.615 L 656.246 90.436 L 661.778 93.393 L 666.627 97.373 L 670.607 102.222 L 673.564 107.754 L 675.385 113.757 Z\" fill=\"none\" stroke=\"#c9d1df\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-size-legend\" data-sq-role=\"legend-swatch\"/><text x=\"684\" y=\"123.5\" font-size=\"10\" text-anchor=\"start\" textLength=\"42\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-legend-label\" data-sq-role=\"legend-label\">2400000</text><text x=\"12\" y=\"28\" font-size=\"16\" text-anchor=\"start\" textLength=\"172.8\" lengthAdjust=\"spacing\" fill=\"#101828\" class=\"sq-title\" data-sq-role=\"title\">Portfolio position</text></g></svg>",
"trajectoryResults": [],
"bubbleResults": [
{
"id": "alpha",
"x": "72",
"y": "18.4",
"size": "2400000",
"group": "core",
"inputIndex": 0,
"zOrder": 0,
"radiusPx": 32,
"areaCoordinate": 1,
"floorApplied": false,
"zero": false,
"meaning": "",
"targetKey": "t-bubble-92b5c9e3ec74d40b",
"labelState": "notRequested"
},
{
"id": "beta",
"x": "58",
"y": "11.9",
"size": "0",
"group": "new",
"inputIndex": 1,
"zOrder": 1,
"radiusPx": 4,
"areaCoordinate": 0,
"floorApplied": true,
"zero": true,
"meaning": "zero",
"targetKey": "t-bubble-0c34a68e1ab8dd3e",
"labelState": "notRequested"
}
],
"axisResults": {
"x": {
"scale": "linear",
"reversed": false,
"ticks": [
"56.286008230452674816",
"59.7716049382716048896",
"63.2572016460905349632",
"66.7427983539094650368",
"70.2283950617283951104",
"73.713991769547325184"
],
"min": "56.286008230452674816",
"max": "73.713991769547325184"
},
"y": {
"scale": "linear",
"reversed": false,
"ticks": [
"10.68125",
"12.46875",
"14.25625",
"16.04375",
"17.83125",
"19.61875"
],
"min": "10.68125",
"max": "19.61875"
},
"size": {
"minRadius": 4,
"positiveMin": "2400000",
"type": "sqrt_area",
"min": "0",
"max": "2400000",
"maxRadius": 32
}
},
"width": 800
}Visible zero and large bubble
{
"bubbles": [
{
"x": "1",
"y": "1",
"size": "0",
"id": "zero"
},
{
"x": "2",
"y": "2",
"size": "1000",
"id": "large"
}
]
}{
"height": 500,
"viewBox": "0 0 800 500",
"groupResults": [],
"renderSummary": {
"variation": "bubble",
"bubbleCount": 2,
"groupCount": 0,
"zeroBubbleCount": 1,
"sizeFloorCount": 0,
"trajectoryCount": 0,
"sizeScale": "sqrt_area",
"paintOrder": "largest_first"
},
"transformationSummary": {
"applied": false,
"operations": [],
"affectedCategoryCount": 0,
"affectedPointCount": 0,
"affectedLabelCount": 0
},
"accessibility": {
"title": "Bubble chart with 2 bubbles",
"detail": "full",
"description": "Bubble chart. 2 exact observations; size scale sqrt_area; 0 declared groups. Bubbles: zero x 1 y 1 size 0 0, large x 2 y 2 size 1000 1000. All values are listed."
},
"referenceResults": [],
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"500\" viewBox=\"0 0 800 500\" role=\"img\" class=\"sq-chart sq-chart--bubble sq-family--relationship sq-theme--squillify sq-surface--light sq-density--standard\" data-sq-style-contract=\"CHART_STYLE@1\" data-sq-chart=\"bubble\" data-sq-family=\"relationship\" data-sq-theme=\"squillify\" data-sq-theme-version=\"1\" data-sq-surface=\"light\" data-sq-density=\"standard\" data-sq-a11y-detail=\"full\" aria-labelledby=\"sq-b52b6d4e1eb2-title-0 sq-b52b6d4e1eb2-desc-1\"><title id=\"sq-b52b6d4e1eb2-title-0\">Bubble chart with 2 bubbles</title><desc id=\"sq-b52b6d4e1eb2-desc-1\">Bubble chart. 2 exact observations; size scale sqrt_area; 0 declared groups. Bubbles: zero x 1 y 1 size 0 0, large x 2 y 2 size 1000 1000. All values are listed.</desc><style>.sq-chart{--sq-chart-axis:#c9d1df;--sq-chart-font-family:'Squillify Mono', 'IBM Plex Mono', monospace;--sq-chart-grid:#d8dee9;--sq-chart-surface:#ffffff;--sq-chart-text-muted:#667085;--sq-chart-text-primary:#101828;--sq-series-1:#2563eb;--sq-series-2:#6d5ce7;--sq-series-3:#168a5b;--sq-series-4:#c45412;--sq-series-5:#d92d20;--sq-series-6:#667085;font-family:var(--sq-chart-font-family);font-weight:500;}.sq-chart .sq-background{fill:var(--sq-chart-surface);}.sq-chart .sq-grid{stroke:var(--sq-chart-grid);}.sq-chart .sq-axis{stroke:var(--sq-chart-axis);}.sq-chart .sq-tick-label{fill:var(--sq-chart-text-muted);}.sq-chart .sq-legend-label{fill:var(--sq-chart-text-primary);}</style><rect x=\"0\" y=\"0\" width=\"800\" height=\"500\" fill=\"#ffffff\" class=\"sq-background\" data-sq-role=\"background\"/><g class=\"sq-plot\" data-sq-role=\"plot\"><line x1=\"157\" y1=\"26\" x2=\"157\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"157\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"42\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">0.87757</text><line x1=\"245.2\" y1=\"26\" x2=\"245.2\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"245.2\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.1265</text><line x1=\"333.4\" y1=\"26\" x2=\"333.4\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"333.4\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.3755</text><line x1=\"421.6\" y1=\"26\" x2=\"421.6\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"421.6\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.6245</text><line x1=\"509.8\" y1=\"26\" x2=\"509.8\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"509.8\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.8735</text><line x1=\"598\" y1=\"26\" x2=\"598\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"598\" y=\"470\" font-size=\"10\" text-anchor=\"middle\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">2.1224</text><line x1=\"157\" y1=\"456\" x2=\"598\" y2=\"456\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"459.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">0.8125</text><line x1=\"157\" y1=\"370\" x2=\"598\" y2=\"370\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"373.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.0875</text><line x1=\"157\" y1=\"284\" x2=\"598\" y2=\"284\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"287.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.3625</text><line x1=\"157\" y1=\"198\" x2=\"598\" y2=\"198\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"201.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.6375</text><line x1=\"157\" y1=\"112\" x2=\"598\" y2=\"112\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"115.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">1.9125</text><line x1=\"157\" y1=\"26\" x2=\"598\" y2=\"26\" stroke=\"#d8dee9\" stroke-width=\"1\" class=\"sq-grid\" data-sq-role=\"grid-line\"/><text x=\"151\" y=\"29.5\" font-size=\"10\" text-anchor=\"end\" textLength=\"36\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-label sq-tick-label\" data-sq-role=\"tick-label\">2.1875</text><line x1=\"157\" y1=\"456\" x2=\"598\" y2=\"456\" stroke=\"#c9d1df\" stroke-width=\"1.2\" class=\"sq-axis\" data-sq-role=\"axis-line\"/><line x1=\"157\" y1=\"26\" x2=\"157\" y2=\"456\" stroke=\"#c9d1df\" stroke-width=\"1.2\" class=\"sq-axis\" data-sq-role=\"axis-line\"/><path d=\"M 586.629 84.636 L 586.014 90.879 L 584.193 96.882 L 581.236 102.414 L 577.256 107.263 L 572.407 111.243 L 566.875 114.2 L 560.872 116.021 L 554.629 116.636 L 548.386 116.021 L 542.383 114.2 L 536.851 111.243 L 532.002 107.263 L 528.022 102.414 L 525.065 96.882 L 523.244 90.879 L 522.629 84.636 L 523.244 78.393 L 525.065 72.39 L 528.022 66.858 L 532.002 62.009 L 536.851 58.029 L 542.383 55.072 L 548.386 53.251 L 554.629 52.636 L 560.872 53.251 L 566.875 55.072 L 572.407 58.029 L 577.256 62.009 L 581.236 66.858 L 584.193 72.39 L 586.014 78.393 Z\" fill=\"#2563eb\" stroke=\"#2563eb\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-bubble\" data-sq-role=\"bubble\" data-sq-target-key=\"t-bubble-22e3f86df7983b0a\" data-sq-series-index=\"0\" data-sq-point-index=\"1\" data-sq-palette-index=\"0\"/><path d=\"M 204.371 397.364 L 204.294 398.144 L 204.067 398.895 L 203.697 399.586 L 203.199 400.192 L 202.593 400.69 L 201.902 401.06 L 201.151 401.287 L 200.371 401.364 L 199.591 401.287 L 198.84 401.06 L 198.149 400.69 L 197.543 400.192 L 197.045 399.586 L 196.675 398.895 L 196.448 398.144 L 196.371 397.364 L 196.448 396.584 L 196.675 395.833 L 197.045 395.142 L 197.543 394.536 L 198.149 394.038 L 198.84 393.668 L 199.591 393.441 L 200.371 393.364 L 201.151 393.441 L 201.902 393.668 L 202.593 394.038 L 203.199 394.536 L 203.697 395.142 L 204.067 395.833 L 204.294 396.584 Z\" fill=\"none\" stroke=\"#2563eb\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-zero-bubble\" data-sq-role=\"zero-bubble\" data-sq-target-key=\"t-bubble-d5bfd009a289af33\" data-sq-series-index=\"0\" data-sq-point-index=\"0\" data-sq-palette-index=\"0\" data-sq-meaning=\"zero\"/><path d=\"M 648 46 L 647.923 46.78 L 647.696 47.531 L 647.326 48.222 L 646.828 48.828 L 646.222 49.326 L 645.531 49.696 L 644.78 49.923 L 644 50 L 643.22 49.923 L 642.469 49.696 L 641.778 49.326 L 641.172 48.828 L 640.674 48.222 L 640.304 47.531 L 640.077 46.78 L 640 46 L 640.077 45.22 L 640.304 44.469 L 640.674 43.778 L 641.172 43.172 L 641.778 42.674 L 642.469 42.304 L 643.22 42.077 L 644 42 L 644.78 42.077 L 645.531 42.304 L 646.222 42.674 L 646.828 43.172 L 647.326 43.778 L 647.696 44.469 L 647.923 45.22 Z\" fill=\"none\" stroke=\"#c9d1df\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-size-legend\" data-sq-role=\"legend-swatch\"/><text x=\"684\" y=\"49.5\" font-size=\"10\" text-anchor=\"start\" textLength=\"6\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-legend-label\" data-sq-role=\"legend-label\">0</text><path d=\"M 676 62 L 675.385 68.243 L 673.564 74.246 L 670.607 79.778 L 666.627 84.627 L 661.778 88.607 L 656.246 91.564 L 650.243 93.385 L 644 94 L 637.757 93.385 L 631.754 91.564 L 626.222 88.607 L 621.373 84.627 L 617.393 79.778 L 614.436 74.246 L 612.615 68.243 L 612 62 L 612.615 55.757 L 614.436 49.754 L 617.393 44.222 L 621.373 39.373 L 626.222 35.393 L 631.754 32.436 L 637.757 30.615 L 644 30 L 650.243 30.615 L 656.246 32.436 L 661.778 35.393 L 666.627 39.373 L 670.607 44.222 L 673.564 49.754 L 675.385 55.757 Z\" fill=\"none\" stroke=\"#c9d1df\" stroke-width=\"1.4\" fill-opacity=\"0.78\" class=\"sq-size-legend\" data-sq-role=\"legend-swatch\"/><text x=\"684\" y=\"65.5\" font-size=\"10\" text-anchor=\"start\" textLength=\"24\" lengthAdjust=\"spacing\" fill=\"#667085\" class=\"sq-legend-label\" data-sq-role=\"legend-label\">1000</text></g></svg>",
"trajectoryResults": [],
"bubbleResults": [
{
"id": "zero",
"x": "1",
"y": "1",
"size": "0",
"group": null,
"inputIndex": 0,
"zOrder": 1,
"radiusPx": 4,
"areaCoordinate": 0,
"floorApplied": true,
"zero": true,
"meaning": "zero",
"targetKey": "t-bubble-d5bfd009a289af33",
"labelState": "notRequested"
},
{
"id": "large",
"x": "2",
"y": "2",
"size": "1000",
"group": null,
"inputIndex": 1,
"zOrder": 0,
"radiusPx": 32,
"areaCoordinate": 1,
"floorApplied": false,
"zero": false,
"meaning": "",
"targetKey": "t-bubble-22e3f86df7983b0a",
"labelState": "notRequested"
}
],
"axisResults": {
"x": {
"scale": "linear",
"reversed": false,
"ticks": [
"0.877572016460905344",
"1.1265432098765432064",
"1.3755144032921810688",
"1.6244855967078189312",
"1.8734567901234567936",
"2.122427983539094656"
],
"min": "0.877572016460905344",
"max": "2.122427983539094656"
},
"y": {
"scale": "linear",
"reversed": false,
"ticks": [
"0.8125",
"1.0875",
"1.3625",
"1.6375",
"1.9125",
"2.1875"
],
"min": "0.8125",
"max": "2.1875"
},
"size": {
"minRadius": 4,
"positiveMin": "1000",
"type": "sqrt_area",
"min": "0",
"max": "1000",
"maxRadius": 32
}
},
"width": 800
}Recommended use cases
- Compare three supplied measures
- Show portfolio position
- Preserve visible zero-size records
Avoid for
- Position without x/y meaning
- A geographic map
- Unbounded records
Related skills
Composable with
Safety & privacy
- Runs without calling any external service.
- Your payloads are never stored permanently.
- Telemetry captures metadata only — never your payload contents.
- We never train models on your payloads.
- No human reviews your payloads.