在chart.js中分组的条形图


68

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

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

Answers:


131

是的,您可以使用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 });

看到这个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,
                }
            }]
        }
    }
});

看到这个JSFiddle


最后一行的语法抛出错误:Bar不是函数;我正在使用Chart.min.js 2.2.1。
Tobi G.

@TobiG。我添加了一个Chart.js v2.x示例。
雅各布·布丁

@Jacub Budin Chart.js v2.x示例无法正确呈现。对于香草,没有绿色的酒吧。
沙希德

@Shahid那是因为Y轴最小值是2– Chart.js的默认行为是采用最小值–并非0您所期望的。我已经更新了该示例以使其更加清晰,但是它可以正确呈现。
雅各布·布丁

3
我想知道您是如何找到此信息的。我在文档上找不到。
alansiqueira27 '18 -10-31
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.