我想制作堆叠的条形图,但还要将其中一些组合在一起,并可能为它们涂上略有不同的颜色。
我得到的数据如下:
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
中的其他代码