如何在chart.js甜甜圈图表中使用两个数据集?

问题描述:

chart.js website上,如果您点击图表下方的“添加数据集”按钮,您会在甜甜圈中获得甜甜圈。这里是什么样子的截图:如何在chart.js甜甜圈图表中使用两个数据集?

enter image description here

这就是我想要的,但我无法弄清楚如何添加第二个数据集,甚至当我查看源代码...所以我猜测(下面第8行)。我的猜测是错误的,如果删除第8行,我得到一个圆环的甜甜圈。

这是我试过的代码片段:

<canvas id="OR-County-chart" style="min-height:20em;"></canvas> 
     <script> 
      var ctxb = $('#OR-County-chart'); 
      var data = { 
       labels: ["Baker County","Benton County","Clackamas County", "Clatsop County", "Columbia County", "Coos County", "Crook County", "Curry County", "Deschutes County", "Douglas County", "Gilliam County", "Grant County", "Harney County", "Hood River County", "Jackson County", "Jefferson County", "Josephine County", "Klamath County", "Lake County", "Lane County", "Lincoln County", "Linn County", "Malheur County", "Marion County", "Morrow County", "Multnomah County", "Polk County", "Sherman County", "Tillamook County", "Umatilla County", "Union County", "Wallowa County", "Wasco County", "Washington County", "Wheeler County", "Yamhill County"], 
       datasets: [{ 
        data: [{tag_baker county spend},{tag_benton county spend},{tag_clackamas county spend},{tag_clatsop county spend},{tag_columbia county spend}, {tag_coos county spend}, {tag_crook county spend}, {tag_curry county spend}, {tag_deschutes county spend}, {tag_douglas county spend}, {tag_gilliam county spend}, {tag_grant county spend}, {tag_harney county spend}, {tag_hood river county spend}, {tag_jackson county spend}, {tag_jefferson county spend}, {tag_josephine county spend}, {tag_klamath county spend}, {tag_lake county spend}, {tag_lane county spend}, {tag_lincoln county spend}, {tag_linn county spend}, {tag_malheur county spend}, {tag_marion county spend}, {tag_morrow county spend}, {tag_multnomah county spend}, {tag_polk county spend}, {tag_sherman county spend}, {tag_tillamook county spend}, {tag_umatilla county spend}, {tag_union county spend}, {tag_wallowa county spend}, {tag_wasco county spend}, {tag_washington county spend}, {tag_wheeler county spend}, {tag_yamhill county spend}], 
        [{tag_baker county funded properties},{tag_benton county funded properties},{tag_clackamas county funded properties},{tag_clatsop couty funded properties},{tag_columbia county funded properties},{tag_coos county funded properties},{tag_crook county funded properties},{tag_curry county funded properties},{tag_deschutes county funded properties},{tag_douglas county funded properties},{tag_gilliam county funded properties},{tag_grant county funded properties},{tag_harney county funded properties},{tag_hood river county funded properties},{tag_jackson county funded properties},{tag_jefferson county funded properties},{tag_josephine county funded properties},{tag_klamath county funded properties},{tag_lake county funded properties},{tag_lane county funded properties},{tag_lincoln county funded properties},{tag_linn county funded properties},{tag_malheur county funded properties},{tag_marion county funded properties},{tag_morrow county funded properties},{tag_multnomah county funded properties},{tag_polk county funded properties},{tag_sherman county funded properties},{tag_tillamook county funded properties},{tag_umatilla county funded properties},{tag_union county funded properties},{tag_wallowa county funded properties},{tag_wasco county funded properties},{tag_washington county funded properties},{tag_wheeler county funded properties},{tag_yamhill county funded properties}] 
        backgroundColor: [ 
         'rgba(33,43,64,1)',//baker 
         'rgba(194,244,120,1)',//benton 
         'rgba(223,211,182,1)',//clackamas 
         'rgba(186,220,221,1)',//clatsop 

我搜索了一个例子的的jsfiddle,但找不到一个。

刚刚通过他们的示例代码。看起来数据集阵列中的对象应该具有以下结构

{ 
      data: [ 
       <a number>, 
       <a number>, 
       ... 
      ], 
      backgroundColor: [ 
       <a colour>, 
       <a colour>, 
       ... 
      ], 
      label: 'Unique label for this data set 
} 

我已经为您创建了以下代码段。

var config = { 
 
    type: 'doughnut', 
 
    data: { 
 
    datasets: [ 
 
    /* Outer doughnut data starts*/ 
 
    { 
 
     data: [ 
 
     10, 
 
     20, 
 
     30 
 
     ], 
 
     backgroundColor: [ 
 
     "rgb(255, 0, 0)", // red 
 
     "rgb(0, 255, 0)", // green 
 
     "rgb(0, 0, 255)", //blue 
 
     ], 
 
     label: 'Doughnut 1' 
 
    }, 
 
    /* Outer doughnut data ends*/ 
 
    /* Inner doughnut data starts*/ 
 
    { 
 
     data: [ 
 
     45, 
 
     25, 
 
     11 
 
     ], 
 
     backgroundColor: [ 
 
     "rgb(255, 0, 0)", // red 
 
     "rgb(0, 255, 0)", // green 
 
     "rgb(0, 0, 255)", //blue 
 
     ], 
 
     label: 'Doughnut 2' 
 
    } 
 
    /* Inner doughnut data ends*/ 
 
    ], 
 
    labels: [ 
 
     "Info 1", 
 
     "Info 2", 
 
     "Info 3" 
 
    ] 
 
    }, 
 
    options: { 
 
    responsive: true, 
 
    legend: { 
 
     position: 'top', 
 
    }, 
 
    title: { 
 
     display: true, 
 
     text: 'Chart.js Doughnut Chart' 
 
    }, 
 
    animation: { 
 
     animateScale: true, 
 
     animateRotate: true 
 
    }, 
 
    tooltips: { 
 
     callbacks: { 
 
     label: function(item, data) { 
 
     console.log(data.labels, item); 
 
      return data.datasets[item.datasetIndex].label+ ": "+ data.labels[item.index]+ ": "+ data.datasets[item.datasetIndex].data[item.index]; 
 
     } 
 
    } 
 
} 
 
    } 
 
}; 
 
window.onload = function() { 
 
    var ctx = document.getElementById("myChart") 
 
    .getContext("2d"); 
 
    window.myDoughnut = new Chart(ctx, config); 
 
};
<html> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.js"></script> 
 
</head> 
 

 
<body> 
 
    <canvas id="myChart"></canvas> 
 
</body> 
 

 
</html>

+0

正如你所看到的,我只是说描述我的'config.data.datasets'阵列中的数据的另一个对象,并成为内甜甜圈 –

+0

如果您需要另一个甜甜圈,你可以将所描述格式的新对象推送到'config.data.datasets',然后调用'window.myDoughnut.update();' –

+0

这很好地工作,它是我尝试可视化数据的完美格式。这是一个开发网站,但你可以在这里看到它的底部:https://hhf-reporting.worldsecuresystems.com/ –