分组条形图,chart.js

Grouped bar charts, in chart.js

我见过其他 javascript 支持分组条形图的图表库,如下图所示。我在 chart.js 的在线编辑器中没有将此视为明确的选项。

是否可以在 chart.js 中制作此类分组条形图?这简单吗?他们的在线编辑器中有模板吗?

是的,您可以使用 datasets 属性 提供多个数据集,这是一个包含值分组的数组。每个数据集都包含 data 中的一系列值,这些值对应于 labels.

请参阅下面两个略有不同的示例,具体取决于您的 Chart.js 版本。


Chart.js v1.x

var ctx = document.getElementById("myChart").getContext("2d");

var data = {
    labels: ["Chocolate", "Vanilla", "Strawberry"],
    datasets: [
        {
            label: "Blue",
            fillColor: "blue",
            data: [3,7,4]
        },
        {
            label: "Red",
            fillColor: "red",
            data: [4,3,5]
        },
        {
            label: "Green",
            fillColor: "green",
            data: [7,2,6]
        }
    ]
};

var myBarChart = new Chart(ctx).Bar(data, { barValueSpacing: 20 });

参见 this JSFiddle


Chart.js v2.x

var ctx = document.getElementById("myChart").getContext("2d");

var data = {
    labels: ["Chocolate", "Vanilla", "Strawberry"],
    datasets: [
        {
            label: "Blue",
            backgroundColor: "blue",
            data: [3,7,4]
        },
        {
            label: "Red",
            backgroundColor: "red",
            data: [4,3,5]
        },
        {
            label: "Green",
            backgroundColor: "green",
            data: [7,2,6]
        }
    ]
};

var myBarChart = new Chart(ctx, {
    type: 'bar',
    data: data,
    options: {
        barValueSpacing: 20,
        scales: {
            yAxes: [{
                ticks: {
                    min: 0,
                }
            }]
        }
    }
});

this JSFiddle