Bar charts display data as horizontal bars. The bar length represents the data value.
Basic Usage
To visualize data with a bar chart, use type: 'bar'.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart, span } = tags;
const chart = Chart({
type: 'bar',
labels: true,
style: 'width: 100%; max-width: 600px; margin: 0 auto;'
},
Chart.Body({},
Chart.Row({},
Chart.Label({}, 'Item 1'),
Chart.Data({ value: 0.4 }, span({ class: 'data' }, '40%'))
),
Chart.Row({},
Chart.Label({}, 'Item 2'),
Chart.Data({ value: 0.6 }, span({ class: 'data' }, '60%'))
),
Chart.Row({},
Chart.Label({}, 'Item 3'),
Chart.Data({ value: 0.8 }, span({ class: 'data' }, '80%'))
)
)
);
$('#example').content(chart);
Multiple Datasets
Add multiple Chart.Data elements per row and set
multiple: true.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart, span } = tags;
const chart = Chart({
type: 'bar',
multiple: true,
labels: true,
primaryAxis: true,
primaryAxis: true,
style: 'width: 100%; max-width: 600px; margin: 0 auto;'
},
Chart.Body({},
Chart.Row({},
Chart.Label({}, 'Q1'),
Chart.Data({ value: 0.3, color: '#4CAF50' }, span({ class: 'data' }, 'East')),
Chart.Data({ value: 0.5, color: '#2196F3' }, span({ class: 'data' }, 'West')),
Chart.Data({ value: 0.4, color: '#FF9800' }, span({ class: 'data' }, 'North'))
),
Chart.Row({},
Chart.Label({}, 'Q2'),
Chart.Data({ value: 0.5, color: '#4CAF50' }, span({ class: 'data' }, 'East')),
Chart.Data({ value: 0.6, color: '#2196F3' }, span({ class: 'data' }, 'West')),
Chart.Data({ value: 0.7, color: '#FF9800' }, span({ class: 'data' }, 'North'))
),
Chart.Row({},
Chart.Label({}, 'Q3'),
Chart.Data({ value: 0.7, color: '#4CAF50' }, span({ class: 'data' }, 'East')),
Chart.Data({ value: 0.8, color: '#2196F3' }, span({ class: 'data' }, 'West')),
Chart.Data({ value: 0.5, color: '#FF9800' }, span({ class: 'data' }, 'North'))
)
)
);
$('#example').content(chart);
Axes
Control axis visibility with primaryAxis and secondaryAxis.
await import('/components/data-display/chart.js');
const { tags, $ } = Lightview;
const { Chart, span } = tags;
const chart = Chart({
type: 'bar',
labels: true,
primaryAxis: true,
secondaryAxesCount: 4,
style: 'width: 100%; max-width: 600px; margin: 0 auto;'
},
Chart.Body({},
Chart.Row({}, Chart.Label({}, 'Jan'), Chart.Data({ value: 0.25 }, span({ class: 'data' }, '25%'))),
Chart.Row({}, Chart.Label({}, 'Feb'), Chart.Data({ value: 0.5 }, span({ class: 'data' }, '50%'))),
Chart.Row({}, Chart.Label({}, 'Mar'), Chart.Data({ value: 0.75 }, span({ class: 'data' }, '75%'))),
Chart.Row({}, Chart.Label({}, 'Apr'), Chart.Data({ value: 1.0 }, span({ class: 'data' }, '100%')))
)
);
$('#example').content(chart);