Area charts are similar to line charts but with the area below the line filled in, making them ideal for showing volume or cumulative data.
Basic Usage
To visualize data with an area chart, use type: 'area'. Like line charts,
area charts require both start and value.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart } = tags;
const chart = Chart({
type: 'area',
labels: true,
primaryAxis: true,
style: 'width: 100%; max-width: 600px; height: 250px; margin: 0 auto;'
},
Chart.Body({},
Chart.Row({}, Chart.Label({}, 'Jan'), Chart.Data({ start: 0.2, value: 0.4 })),
Chart.Row({}, Chart.Label({}, 'Feb'), Chart.Data({ start: 0.4, value: 0.6 })),
Chart.Row({}, Chart.Label({}, 'Mar'), Chart.Data({ start: 0.6, value: 0.5 })),
Chart.Row({}, Chart.Label({}, 'Apr'), Chart.Data({ start: 0.5, value: 0.8 })),
Chart.Row({}, Chart.Label({}, 'May'), Chart.Data({ start: 0.8, value: 0.7 }))
)
);
$('#example').content(chart);
Multiple Datasets
Create layered areas with multiple datasets.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart } = tags;
const chart = Chart({
type: 'area',
multiple: true,
labels: true,
primaryAxis: true,
style: 'width: 100%; max-width: 600px; height: 280px; margin: 0 auto; --color-1: rgba(76, 175, 80, 0.5); --color-2: rgba(33, 150, 243, 0.5); --color-3: rgba(255, 152, 0, 0.5);'
},
Chart.Body({},
Chart.Row({},
Chart.Label({}, 'Q1'),
Chart.Data({ start: 0.1, value: 0.3 }),
Chart.Data({ start: 0.2, value: 0.4 }),
Chart.Data({ start: 0.15, value: 0.35 })
),
Chart.Row({},
Chart.Label({}, 'Q2'),
Chart.Data({ start: 0.3, value: 0.5 }),
Chart.Data({ start: 0.4, value: 0.6 }),
Chart.Data({ start: 0.35, value: 0.5 })
),
Chart.Row({},
Chart.Label({}, 'Q3'),
Chart.Data({ start: 0.5, value: 0.4 }),
Chart.Data({ start: 0.6, value: 0.5 }),
Chart.Data({ start: 0.5, value: 0.6 })
),
Chart.Row({},
Chart.Label({}, 'Q4'),
Chart.Data({ start: 0.4, value: 0.7 }),
Chart.Data({ start: 0.5, value: 0.8 }),
Chart.Data({ start: 0.6, value: 0.75 })
)
)
);
$('#example').content(chart);
Axes and Grid
Add grid lines with primaryAxis and secondaryAxis.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart } = tags;
const chart = Chart({
type: 'area',
labels: true,
primaryAxis: true,
secondaryAxesCount: 4,
style: 'width: 100%; max-width: 600px; height: 280px; margin: 0 auto;'
},
Chart.Body({},
Chart.Row({}, Chart.Label({}, '1'), Chart.Data({ start: 0.0, value: 0.25 })),
Chart.Row({}, Chart.Label({}, '2'), Chart.Data({ start: 0.25, value: 0.5 })),
Chart.Row({}, Chart.Label({}, '3'), Chart.Data({ start: 0.5, value: 0.75 })),
Chart.Row({}, Chart.Label({}, '4'), Chart.Data({ start: 0.75, value: 0.5 })),
Chart.Row({}, Chart.Label({}, '5'), Chart.Data({ start: 0.5, value: 1.0 }))
)
);
$('#example').content(chart);
Area Styling
Customize area appearance with CSS custom properties.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart } = tags;
const chart = Chart({
type: 'area',
labels: true,
style: 'width: 100%; max-width: 600px; height: 250px; margin: 0 auto; --color: rgba(116, 128, 255, 0.6);'
},
Chart.Body({},
Chart.Row({}, Chart.Label({}, 'Mon'), Chart.Data({ start: 0.2, value: 0.5 })),
Chart.Row({}, Chart.Label({}, 'Tue'), Chart.Data({ start: 0.5, value: 0.7 })),
Chart.Row({}, Chart.Label({}, 'Wed'), Chart.Data({ start: 0.7, value: 0.4 })),
Chart.Row({}, Chart.Label({}, 'Thu'), Chart.Data({ start: 0.4, value: 0.8 })),
Chart.Row({}, Chart.Label({}, 'Fri'), Chart.Data({ start: 0.8, value: 0.6 }))
)
);
$('#example').content(chart);