Line
Line charts visualize continuous trends — DAU growth, latency p50/p95/p99, error rates, retention curves. Chart.js renders them with smooth curves by default; per-dataset overrides toggle stepped, dashed, or angular variants.
When to use line charts
Continuous data over time. For categorical comparisons reach for bar charts; for cumulative breakdowns reach for stacked area.
Basic Example — Daily Active Users
Multi-series — Latency percentiles
Stepped — Error budget consumed
<x-wirekit-chart
type="line"
:labels="['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']"
:datasets="[
[
'label' => 'Error budget burn (%)',
'data' => [0, 0, 12, 12, 47, 47, 47],
'stepped' => true,
'fill' => false,
],
]"
height="280px"
/>
stepped: true turns each segment into a horizontal-then-vertical step — the right shape for incident-driven jumps where the value stays flat between events.
Real-world recipe — Stream live metric updates
@php
$cpu = \App\Metrics\Cpu::recent(60)->pluck('percent')->all(); // last 60 samples
$labels = array_map(fn ($i) => "{$i}m ago", array_reverse(range(0, count($cpu) - 1)));
@endphp
<x-wirekit-chart
type="line"
:labels="$labels"
:datasets="[['label' => 'CPU usage (%)', 'data' => $cpu]]"
wireStream="cpu.sample"
wireStreamMode="strict"
:wireStreamCap="60"
height="240px"
/>
{{-- In a Livewire component:
$this->dispatch('cpu.sample', point: 67.4);
--}}
The wireStream prop subscribes the chart to a Livewire-emitted event. Each fired event appends a new data point and (under strict mode, the default) trims the oldest one — keeping the visible window constant at wireStreamCap points. See Advanced charts for the full pattern.
See Also
- Area charts for filled-line variants
- Bar charts for categorical comparisons
- ApexCharts line demos for the same charts on the alternative adapter
Design Tokens
See Chart.js adapter — Design Tokens for the color, typography, and grid tokens shared across every Chart.js demo.