如何使用 ChartJS 向下钻取图表?

Alo*_*nBA 11 javascript jquery drilldown pie-chart chart.js

我很惊讶我发现几乎没有关于这个主题的信息。

我有一个 ChartJS 饼图,我想在单击饼图的一部分后深入查看。

你会怎么做?

谢谢

Alo*_*nBA 7

我已经使用这个很棒的答案解决了我的问题:

Chart.js 中饼图上的单击事件

编码:

    $(document).ready(function() {
      var canvas = document.getElementById("myChart");
      var ctx = canvas.getContext("2d");
      var myNewChart = new Chart(ctx, {
         type: 'pie',
         data: data
      });

      canvas.onclick = function(evt) {
      var activePoints = myNewChart.getElementsAtEvent(evt);
      if (activePoints[0]) {
         var chartData = activePoints[0]['_chart'].config.data;
         var idx = activePoints[0]['_index'];

         var label = chartData.labels[idx];
         var value = chartData.datasets[0].data[idx];
         var color = chartData.datasets[0].backgroundColor[idx]; //Or any other data you wish to take from the clicked slice

         alert(label + ' ' + value + ' ' + color); //Or any other function you want to execute. I sent the data to the server, and used the response i got from the server to create a new chart in a Bootstrap modal.
       }
     };
  });
Run Code Online (Sandbox Code Playgroud)

这完美地工作。我没有提醒信息,而是使用 AJAX 将其发送到服务器,并在引导模式中显示新图表。

  • 您可以在没有模态的情况下在相同的 html 中执行此操作。只需对图表变量调用 .clear() 和 .destroy() 方法,然后使用不同的值重新加载相同的图表。 (2认同)