Scatter Chart
Reveal correlations and distributions between two continuous variables. Ideal for data exploration and identifying clusters or outliers.
Installation
dotnet add package Lumeo.Charts
One-time app setup (AddLumeo(), CSS & JS) is covered in the
installation guide.
Usage
@using Lumeo <ScatterChart />
| Series | Item | Value |
|---|---|---|
| Team Alpha | 1 | 14, 82.3 |
| Team Alpha | 2 | 22, 74.1 |
| Team Alpha | 3 | 8, 91.5 |
| Team Alpha | 4 | 31, 65.8 |
| Team Alpha | 5 | 18, 78.4 |
| Team Alpha | 6 | 25, 69.2 |
| Team Alpha | 7 | 11, 87.6 |
| Team Beta | 1 | 28, 55.3 |
| Team Beta | 2 | 37, 48.7 |
| Team Beta | 3 | 19, 62.1 |
| Team Beta | 4 | 43, 41.5 |
| Team Beta | 5 | 33, 51.8 |
| Team Beta | 6 | 24, 58.9 |
| Team Beta | 7 | 40, 45.2 |
Compare two cohorts across the same axes — experience vs. performance score — to spot separation between groups.
| Series | Item | Value |
|---|---|---|
| Enterprise | 1 | 2.1, 94200 |
| Enterprise | 2 | 1.3, 128400 |
| Enterprise | 3 | 3.4, 87600 |
| Enterprise | 4 | 0.8, 142800 |
| Enterprise | 5 | 4.2, 76300 |
| Enterprise | 6 | 1.9, 111200 |
| Enterprise | 7 | 2.7, 98700 |
| Professional | 1 | 5.8, 34200 |
| Professional | 2 | 7.2, 28700 |
| Professional | 3 | 4.1, 41800 |
| Professional | 4 | 9.3, 22400 |
| Professional | 5 | 6.4, 31600 |
| Professional | 6 | 8.1, 26300 |
| Professional | 7 | 5.2, 38900 |
| Starter | 1 | 11.4, 8200 |
| Starter | 2 | 14.7, 6300 |
| Starter | 3 | 8.9, 11400 |
| Starter | 4 | 18.2, 4800 |
| Starter | 5 | 12.6, 7100 |
| Starter | 6 | 16.3, 5600 |
| Starter | 7 | 10.1, 9800 |
Plot customer lifetime value against support ticket volume across three distinct customer segments.
| Series | Item | Value |
|---|---|---|
| Team Alpha | 1 | 14, 82.3 |
| Team Alpha | 2 | 22, 74.1 |
| Team Alpha | 3 | 8, 91.5 |
| Team Alpha | 4 | 31, 65.8 |
| Team Alpha | 5 | 18, 78.4 |
| Team Alpha | 6 | 25, 69.2 |
| Team Alpha | 7 | 11, 87.6 |
| Team Beta | 1 | 28, 55.3 |
| Team Beta | 2 | 37, 48.7 |
| Team Beta | 3 | 19, 62.1 |
| Team Beta | 4 | 43, 41.5 |
| Team Beta | 5 | 33, 51.8 |
| Team Beta | 6 | 24, 58.9 |
| Team Beta | 7 | 40, 45.2 |
Set a uniform BubbleSize to make individual data points stand out, useful when the x/y position carries all the information.
| Name | Value |
|---|---|
| 1 | 1200, 3.4 |
| 2 | 2400, 4.1 |
| 3 | 3600, 4.8 |
| 4 | 4800, 5.2 |
| 5 | 6000, 5.9 |
| 6 | 7200, 6.1 |
| 7 | 8400, 6.4 |
| 8 | 9600, 6.8 |
| 9 | 10800, 7.1 |
| 10 | 12000, 7.3 |
A single-series view with the legend hidden keeps the chart minimal when context is provided by surrounding copy.
| Series | Item | Value |
|---|---|---|
| Enterprise | 1 | 2.1, 94200 |
| Enterprise | 2 | 1.3, 128400 |
| Enterprise | 3 | 3.4, 87600 |
| Enterprise | 4 | 0.8, 142800 |
| Enterprise | 5 | 4.2, 76300 |
| Enterprise | 6 | 1.9, 111200 |
| Enterprise | 7 | 2.7, 98700 |
| Professional | 1 | 5.8, 34200 |
| Professional | 2 | 7.2, 28700 |
| Professional | 3 | 4.1, 41800 |
| Professional | 4 | 9.3, 22400 |
| Professional | 5 | 6.4, 31600 |
| Professional | 6 | 8.1, 26300 |
| Professional | 7 | 5.2, 38900 |
| Starter | 1 | 11.4, 8200 |
| Starter | 2 | 14.7, 6300 |
| Starter | 3 | 8.9, 11400 |
| Starter | 4 | 18.2, 4800 |
| Starter | 5 | 12.6, 7100 |
| Starter | 6 | 16.3, 5600 |
| Starter | 7 | 10.1, 9800 |
Override the default color palette to match brand or encode semantic meaning (e.g. green = on-track, red = at-risk).
| Series | Item | Value |
|---|---|---|
| Team Alpha | 1 | 14, 82.3 |
| Team Alpha | 2 | 22, 74.1 |
| Team Alpha | 3 | 8, 91.5 |
| Team Alpha | 4 | 31, 65.8 |
| Team Alpha | 5 | 18, 78.4 |
| Team Alpha | 6 | 25, 69.2 |
| Team Alpha | 7 | 11, 87.6 |
| Team Beta | 1 | 28, 55.3 |
| Team Beta | 2 | 37, 48.7 |
| Team Beta | 3 | 19, 62.1 |
| Team Beta | 4 | 43, 41.5 |
| Team Beta | 5 | 33, 51.8 |
| Team Beta | 6 | 24, 58.9 |
| Team Beta | 7 | 40, 45.2 |
Shape-aware skeleton with reserved space for legend and axes — no layout shift when real data arrives.
API Reference
ScatterChart
| Property | Type | Default | Description |
|---|---|---|---|
| Series | List<ScatterSeriesData> | [] | Data series with Name and Points (double[] coordinate pairs). |
| BubbleSize | int? | null | Fixed symbol size in pixels. |
| ShowLegend | bool | true | Shows legend when multiple series present. |
| Colors | List<string>? | null | Custom color palette for series. |
| ShowTooltip | bool | true | Enables the hover tooltip. |
| IsLoading | bool | false | When true, renders a shape-matched loading skeleton in place of the chart. Bind to your async fetch state. |
| ShowLoadingSkeleton | bool | true | Set to false to opt out of the skeleton (chart area stays empty while IsLoading is true). |
| SkeletonKind | ChartSkeletonKind | (chart default) | Override the skeleton silhouette (Bars, Line, Area, Pie, Scatter, Grid, Generic). |
| SkeletonStyle | ChartSkeletonStyle | Phantom | Phantom renders the real chart with placeholder data and morphs to real data via ECharts animation. Silhouette falls back to the legacy SVG skeleton overlay. |
| ShowLoadingLabel | bool | true | Shows a small "Loading…" pill in the top-right corner whenever IsLoading is true. Layered on top of any SkeletonStyle. Set to false for bare visuals. (rc.18) |
| LoadingText | string? | "Loading…" | Label rendered next to the spinner inside the loading pill. Set to empty to show the spinner alone. (rc.18) |
| Width | string | "100%" | CSS width of the chart container. |
| Height | string | "350px" | CSS height of the chart container. |
| Theme | string? | null | Optional ECharts theme name override. |
| PhantomCycleMs | int | 1400 | Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. |
| ShowDataLabels | bool | false | When true, displays value labels on each scatter point. |
| LabelPosition | string | "top" | Position of data labels relative to each point. |
| LabelFormat | string? | null | Optional ECharts label formatter string for data labels. |
| DataZoom | bool | false | Enables the interactive data-zoom slider beneath the chart. |
| Toolbox | bool | false | Shows the ECharts toolbox with export and zoom controls. |
| ColorPalette | List<string>? | null | Alternate full color palette applied to the chart. |
| AnimationDuration | int? | null | Animation duration in milliseconds when data changes. |
| AnimationEasing | string? | null | ECharts easing function name for animation curves. |
| MarkLine | EChartMarkLine? | null | Optional mark lines overlaid on the chart (e.g. averages, thresholds). |
| MarkPoint | EChartMarkPoint? | null | Optional mark points highlighting min/max or custom values. |
| MarkArea | EChartMarkArea? | null | Optional shaded mark areas highlighting value bands. |