Line Chart
Show trends over time. Use when continuity between data points matters, such as revenue tracking or performance monitoring.
Installation
dotnet add package Lumeo.Charts
One-time app setup (AddLumeo(), CSS & JS) is covered in the
installation guide.
Usage
@using Lumeo <LineChart />
| Category | Revenue | Expenses |
|---|---|---|
| Jan | 18200 | 12100 |
| Feb | 21500 | 13800 |
| Mar | 19800 | 13200 |
| Apr | 27300 | 15900 |
| May | 31600 | 17600 |
| Jun | 44800 | 20800 |
| Jul | 40100 | 19400 |
| Aug | 37700 | 16900 |
| Sep | 42600 | 19700 |
| Oct | 48400 | 21500 |
| Nov | 51900 | 23800 |
| Dec | 60200 | 26400 |
Bezier-smoothed curves with dot markers — a clean default for multi-series trend comparisons.
| Category | Revenue | Expenses |
|---|---|---|
| Jan | 18200 | 12100 |
| Feb | 21500 | 13800 |
| Mar | 19800 | 13200 |
| Apr | 27300 | 15900 |
| May | 31600 | 17600 |
| Jun | 44800 | 20800 |
| Jul | 40100 | 19400 |
| Aug | 37700 | 16900 |
| Sep | 42600 | 19700 |
| Oct | 48400 | 21500 |
| Nov | 51900 | 23800 |
| Dec | 60200 | 26400 |
Replace ECharts' default tooltip body with any Razor markup — themed cards, formatted numbers, child components. With axis-trigger (the default) the slot receives every series at the hovered category via ctx.Points.
| Category | Revenue | Expenses |
|---|---|---|
| Jan | 18200 | 12100 |
| Feb | 21500 | 13800 |
| Mar | 19800 | 13200 |
| Apr | 27300 | 15900 |
| May | 31600 | 17600 |
| Jun | 44800 | 20800 |
| Jul | 40100 | 19400 |
| Aug | 37700 | 16900 |
| Sep | 42600 | 19700 |
| Oct | 48400 | 21500 |
| Nov | 51900 | 23800 |
| Dec | 60200 | 26400 |
Declaratively overlay target lines and healthy / critical bands. Each child translates to ECharts' native markLine / markArea without you touching EChartOption.
| Category | Revenue | Expenses |
|---|---|---|
| Jan | 18200 | 12100 |
| Feb | 21500 | 13800 |
| Mar | 19800 | 13200 |
| Apr | 27300 | 15900 |
| May | 31600 | 17600 |
| Jun | 44800 | 20800 |
| Jul | 40100 | 19400 |
| Aug | 37700 | 16900 |
| Sep | 42600 | 19700 |
| Oct | 48400 | 21500 |
| Nov | 51900 | 23800 |
| Dec | 60200 | 26400 |
Precise straight-line segments without markers keep focus on broad trends rather than individual data points.
| Category | Gross Revenue | Net Revenue | Operating Costs |
|---|---|---|---|
| Jan | 84200 | 61300 | 22900 |
| Feb | 79400 | 57800 | 21600 |
| Mar | 96700 | 70400 | 26300 |
| Apr | 112300 | 81600 | 30700 |
| May | 108600 | 78900 | 29700 |
| Jun | 131400 | 95500 | 35900 |
| Jul | 124800 | 90700 | 34100 |
| Aug | 138700 | 100900 | 37800 |
| Sep | 151200 | 109900 | 41300 |
| Oct | 164900 | 119800 | 45100 |
| Nov | 149300 | 108600 | 40700 |
| Dec | 178600 | 129700 | 48900 |
Compare three key metrics simultaneously. Smooth curves reduce noise when datasets overlap frequently.
| Category | ARR ($K) |
|---|---|
| Q1 | 2840 |
| Q2 | 3170 |
| Q3 | 3490 |
| Q4 | 3820 |
Show the exact value at each data point — useful for executive summaries or printable reports.
| Category | Active Sessions |
|---|---|
| Jan 1 | 4821 |
| Jan 2 | 5103 |
| Jan 3 | 4967 |
| Jan 4 | 5312 |
| Jan 5 | 5874 |
| Jan 6 | 6201 |
| Jan 7 | 5943 |
| Jan 8 | 6418 |
| Jan 9 | 6782 |
| Jan 10 | 7034 |
| Jan 11 | 6891 |
| Jan 12 | 7213 |
| Jan 13 | 7548 |
| Jan 14 | 7892 |
| Jan 15 | 7634 |
| Jan 16 | 8012 |
| Jan 17 | 8347 |
| Jan 18 | 8691 |
| Jan 19 | 8423 |
| Jan 20 | 8978 |
| Jan 21 | 9213 |
| Jan 22 | 9547 |
| Jan 23 | 9389 |
| Jan 24 | 9812 |
| Jan 25 | 10134 |
| Jan 26 | 10478 |
| Jan 27 | 10221 |
| Jan 28 | 10689 |
| Jan 29 | 11012 |
| Jan 30 | 11356 |
| Jan 31 | 11098 |
| Feb 1 | 11534 |
| Feb 2 | 11867 |
| Feb 3 | 12201 |
| Feb 4 | 11943 |
| Feb 5 | 12478 |
| Feb 6 | 12813 |
| Feb 7 | 13157 |
| Feb 8 | 12899 |
| Feb 9 | 13434 |
| Feb 10 | 13769 |
| Feb 11 | 14113 |
| Feb 12 | 13855 |
| Feb 13 | 14390 |
| Feb 14 | 14725 |
| Feb 15 | 15069 |
| Feb 16 | 14811 |
| Feb 17 | 15346 |
| Feb 18 | 15681 |
| Feb 19 | 16025 |
| … and 10 more data points | |
A 60-day daily view with the DataZoom slider so users can zoom into any specific window.
| Category | Monthly Recurring Revenue |
|---|---|
| Jan | 48300 |
| Feb | 51200 |
| Mar | 53800 |
| Apr | 57400 |
| May | 61900 |
| Jun | 67200 |
| Jul | 64800 |
| Aug | 69300 |
| Sep | 74100 |
| Oct | 79600 |
| Nov | 76200 |
| Dec | 83900 |
Override the palette with brand colors and hide the legend for a minimal single-focus layout.
| Category | Monthly Recurring Revenue |
|---|---|
| Jan | 48300 |
| Feb | 51200 |
| Mar | 53800 |
| Apr | 57400 |
| May | 61900 |
| Jun | 67200 |
| Jul | 64800 |
| Aug | 69300 |
| Sep | 74100 |
| Oct | 79600 |
| Nov | 76200 |
| Dec | 83900 |
Multi-series line skeleton draws itself across the path. IsLoading binds to your async fetch; ShowLoadingSkeleton=false opts out.
API Reference
LineChart
| Property | Type | Default | Description |
|---|---|---|---|
| Categories | List<string> | [] | X-axis labels for each data point. |
| Series | List<ChartSeriesData> | [] | Data series to plot as lines. |
| Smooth | bool | false | Renders smooth bezier curves. |
| ShowDots | bool | true | Shows dot markers at each data point. |
| ShowLegend | bool | true | Shows or hides the chart legend. |
| ShowDataLabels | bool | false | Renders value labels at each data point. |
| DataZoom | bool | false | Enables zoom slider for long time-series. |
| Colors | List<string>? | null | Custom color palette. |
| LabelStrategy | ChartLabelStrategy | Smart | How category-axis labels are rendered. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels. |
| LabelRotate | int? | null | Manual rotation override in degrees on top of LabelStrategy. |
| 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) |
| AnimationDuration | int? | null | Override ECharts animation duration in milliseconds. |
| AnimationEasing | string? | null | ECharts easing function name for entry animation. |
| ColorPalette | List<string>? | null | Alternate color palette applied when Colors is unset. |
| Height | string | "350px" | CSS height of the chart container. |
| LabelFormat | string? | null | ECharts formatter string applied to data labels. |
| LabelPosition | string | "top" | Position of data labels relative to each point. |
| MarkArea | EChartMarkArea? | null | Shaded regions highlighting value ranges on the chart. |
| MarkLine | EChartMarkLine? | null | Reference lines (avg, max, custom) overlaid on the chart. |
| MarkPoint | EChartMarkPoint? | null | Marker points highlighting extrema or annotations. |
| PhantomCycleMs | int | 1400 | Phantom-mode refresh interval in milliseconds; lower cycles placeholder data faster. |
| ShowTooltip | bool | true | Enables the hover tooltip on the line series. |
| Theme | string? | null | ECharts theme name override; null follows global Lumeo theme. |
| Toolbox | bool | false | Shows save/restore/zoom toolbox in the corner. |
| Width | string | "100%" | CSS width of the chart container. |