Chart.js分组堆积的条形图

时间:2019-01-13 15:19:25

标签: javascript charts chart.js

我想制作堆叠的条形图,但还要将其中一些组合在一起,并可能为它们涂上略有不同的颜色。

我得到的数据如下:

regionsSelected = ['North', 'South'];

var variables = {
    'var1' : {
    0 : {'North' : 3, 'South' : 4},
    1 : {'North' : 3.5, 'South' : 4.5}
    },
  'var2' : {
    0 : {'North' : 5, 'South' : 5},
    1 : {'North' : 5.5, 'South' : 5.5}
  }
}
//myChart.data.labels = ['var1','var2'];
var bgColor = {
    'North': 'rgb(152,78,163)',
  'South': 'rgb(77,175,74)'}

var bgColor_paired = {
    0: 
  {
    'North': 'rgb(152,78,163)',
    'South': 'rgb(77,175,74)'},
  1: 
  {
    'North': 'rgb(122,78,163)',
    'South': 'rgb(77,125,74)'}
}

for (var random_var in variables) {
    for (x=0;x<2;x++) {
    var y = x;
    var y = y.toString();
    var label = random_var + y;
    console.log(label);
    myChart.data.labels.push(label);
  }
}
for (var region in regionsSelected) {
    stacked_data = [];
  for (x=0;x<2;x++) {

    for (var random_var in variables) {
        var_data = variables[random_var][x][regionsSelected[region]];
        stacked_data.push(var_data); 
    }
  }
   myChart.data.datasets.push({
            label: regionsSelected[region],
            backgroundColor: bgColor[regionsSelected[region]],
            hoverBackgroundColor: bgColor[regionsSelected[region]],
            borderColor: bgColor[regionsSelected[region]],
            data: stacked_data,
          });
}

我想比较多个区域的多个random_vars的x。因此,该区域是按random_var [x]堆叠的,因此我想将它们按random_var分组(因此,您可以非常容易地将random_var1 [x1]与random_var1 [x2]比较,然后查看下一个random_var等。

目前,我将区域堆叠在一起,并且random_var1 [x1] en [x2]彼此相邻,但尚未分组。理想情况下,我将x1和x2的颜色略有不同,因此您可以更轻松地将random_var1 [x1]与random_var2 [x1]进行比较(因为这些条的颜色相同)。

我对其中的所有内容(包括其他颜色)进行了拨弄,但是我不知道如何进行分组:

https://jsfiddle.net/CorneelDragon/o6vkLm0d/39/

编辑:我的“解决方案”是这样的:https://jsfiddle.net/CorneelDragon/o6vkLm0d/74/。这些酒吧没有分组,但是,我认为我需要实现github-comment

中的其他代码

0 个答案:

没有答案