分组条形图,在 chart.js 中

Posted

技术标签:

【中文标题】分组条形图,在 chart.js 中【英文标题】:Grouped bar charts, in chart.js 【发布时间】:2015-03-26 16:20:50 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

最后一行的语法抛出错误:Bar is not a function;我正在使用 Chart.min.js 2.2.1。 @TobiG。我添加了一个 Chart.js v2.x 示例。 @Jacub Budin Chart.js v2.x 示例无法正确呈现。对于香草,没有绿条。 @Shahid 那是因为 Y 轴的最小值是 2——这是 Chart.js 采用最小值的默认行为——而不是你所期望的 0。我更新了示例以使其更清晰,但它呈现正确。 我想知道您是如何找到这些信息的。我在文档上找不到。

以上是关于分组条形图,在 chart.js 中的主要内容,如果未能解决你的问题,请参考以下文章

更改 ggplot2 中条形图和图例的默认颜色

R语言绘图——条形图/柱状图

自动调整 ggplot 中条形图的大小,以实现多个图形 R 的一致性

Chart.js:条形图点击事件

如何在chart.js中为条形图绘制基线

在 Chart.js 中格式化条形图的 yAxis 标签