Skip to content

Bar chart ​

The bar chart renders vertical grouped bars with rounded corners. It supports multiple series and shared tooltips.

Orders per month

TIP

This component is best used inside a Chart pane.

Props

series: FluxStatisticsChartBarSeries[]
The data series for the chart.

labels?: string[]
X-axis category labels.

tooltip?: boolean
Show a tooltip on hover. Disabled by default.

x-axis-labels?: boolean
Show labels on the X-axis. Disabled by default.

y-axis-labels?: boolean
Show labels on the Y-axis. Disabled by default.

split-lines?: boolean
Show dashed split lines along value axes. Disabled by default.

advanced-options?: EChartsOption
Escape-hatch for raw ECharts options merged on top of the Flux defaults.

Examples ​

Multiple series

A grouped bar chart comparing two data series side by side.

Orders comparison

<template>
    <FluxStatisticsChartPane
        icon="chart-bar"
        title="Orders comparison"
        :aspect-ratio="2.5">
        <FluxStatisticsBarChart
            :labels="['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']"
            :series="series"/>

        <template #legend>
            <FluxStatisticsLegend/>
        </template>
    </FluxStatisticsChartPane>
</template>

<script
    setup
    lang="ts">
    import type { FluxStatisticsChartBarSeries } from '@flux-ui/types';
    import { FluxStatisticsBarChart, FluxStatisticsChartPane, FluxStatisticsLegend } from '@flux-ui/statistics';

    const series: FluxStatisticsChartBarSeries[] = [
        {
            name: 'This year',
            icon: 'calendar-check',
            data: [320, 410, 380, 510, 470, 620, 540, 680, 590, 730, 690, 810]
        },
        {
            name: 'Last year',
            icon: 'calendar',
            data: [260, 340, 310, 430, 390, 520, 450, 570, 490, 620, 580, 700]
        }
    ];
</script>

Single series

A single series bar chart with a fixed color.

Weekly checkouts

<template>
    <FluxStatisticsChartPane
        icon="chart-bar"
        title="Weekly checkouts"
        :aspect-ratio="2.5">
        <FluxStatisticsBarChart
            :labels="['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']"
            :series="series"/>
    </FluxStatisticsChartPane>
</template>

<script
    setup
    lang="ts">
    import type { FluxStatisticsChartBarSeries } from '@flux-ui/types';
    import { FluxStatisticsBarChart, FluxStatisticsChartPane } from '@flux-ui/statistics';

    const series: FluxStatisticsChartBarSeries[] = [{
        name: 'Checkouts',
        color: 'success',
        data: [240, 320, 290, 380, 410, 520, 460]
    }];
</script>

Horizontal

A horizontal bar chart configured through advancedOptions.

Top countries

<template>
    <FluxStatisticsChartPane
        icon="chart-bar"
        title="Top countries"
        :aspect-ratio="2">
        <FluxStatisticsBarChart
            :advanced-options="advancedOptions"
            :series="series"/>
    </FluxStatisticsChartPane>
</template>

<script
    setup
    lang="ts">
    import type { EChartsOption } from 'echarts/core';
    import type { FluxStatisticsChartBarSeries } from '@flux-ui/types';
    import { FluxStatisticsBarChart, FluxStatisticsChartPane } from '@flux-ui/statistics';

    const countries = ['Netherlands', 'Germany', 'Belgium', 'France', 'United Kingdom', 'Spain'];

    const series: FluxStatisticsChartBarSeries[] = [{
        name: 'Orders',
        data: [4200, 3100, 1800, 1500, 1200, 800]
    }];

    const advancedOptions: EChartsOption = {
        xAxis: {
            type: 'value',
            show: true,
            axisLabel: { show: true, color: 'var(--foreground-secondary)' }
        },
        yAxis: {
            type: 'category',
            show: true,
            data: countries,
            axisLabel: { show: true, color: 'var(--foreground-secondary)' }
        }
    };
</script>

With tooltip

Enable the hover tooltip by setting the tooltip prop.

Orders per month

<template>
    <FluxStatisticsChartPane
        icon="chart-bar"
        title="Orders per month"
        :aspect-ratio="2.5">
        <FluxStatisticsBarChart
            tooltip
            :labels="['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']"
            :series="series"/>
    </FluxStatisticsChartPane>
</template>

<script
    setup
    lang="ts">
    import type { FluxStatisticsChartBarSeries } from '@flux-ui/types';
    import { FluxStatisticsBarChart, FluxStatisticsChartPane } from '@flux-ui/statistics';

    const series: FluxStatisticsChartBarSeries[] = [{
        name: 'Orders',
        data: [320, 410, 380, 510, 470, 620, 540, 680, 590, 730, 690, 810]
    }];
</script>

With axis labels

Show X/Y axis labels and dashed split lines.

Orders per month

<template>
    <FluxStatisticsChartPane
        icon="chart-bar"
        title="Orders per month"
        :aspect-ratio="2.5">
        <FluxStatisticsBarChart
            split-lines
            x-axis-labels
            y-axis-labels
            :labels="['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']"
            :series="series"/>
    </FluxStatisticsChartPane>
</template>

<script
    setup
    lang="ts">
    import type { FluxStatisticsChartBarSeries } from '@flux-ui/types';
    import { FluxStatisticsBarChart, FluxStatisticsChartPane } from '@flux-ui/statistics';

    const series: FluxStatisticsChartBarSeries[] = [{
        name: 'Orders',
        data: [320, 410, 380, 510, 470, 620, 540, 680, 590, 730, 690, 810]
    }];
</script>