避免在Doughnut Chart.js可视化中出现负值

时间:2019-10-23 08:40:37

标签: javascript chart.js

我有一个chart.js甜甜圈图,其中填充了总计为预定义总计的值(即,所有类别获得一种颜色,“其余”类别为总计减去这些类别的总和)。但是,有时会发生类别总和大于总数的情况。在这种情况下,我得到一个负值,并且该值再次显示为“休息”类别。我需要知道如何避免这种行为。

在代码示例中,您可以看到“ points_min”,即总数(100)。 Points_logins,points_stories,points_ratings是不同的类别,其余类别是points_min减去它们的总和。

var ctx = document.getElementById("myPieChart");
var myPieChart = new Chart(ctx, {
  type: 'doughnut',
  data: {
    labels: ["Logins", "Read", "Rate",  "Rest"],
    datasets: [{
      data: [{{points_logins}}, {{points_stories}}, {{points_ratings}}, {{points_min - (points_logins + points_stories + points_ratings )}}],
      backgroundColor: ['#e74a3b', '#f6c23e', '#4e73df', '#858796'],
      hoverBackgroundColor: ['#d52a1a', '#f4b30d', '#2653d4', '#d3d3d3'],
      hoverBorderColor: "rgba(234, 236, 244, 1)",
    }],
  },
  options: {
    maintainAspectRatio: true,
    tooltips: {
      backgroundColor: "rgb(255,255,255)",
      bodyFontColor: "#858796",
      borderColor: '#dddfeb',
      borderWidth: 1,
      xPadding: 15,
      yPadding: 15,
      displayColors: false,
      caretPadding: 10,
    },
    legend: {
      display: false
    },
    cutoutPercentage: 50,
  },
});

我假设我需要某种形式的'if-else'语句来避免出现负值(即,一旦达到目标,仅显示100的比率),但是我对JavaScript的了解不多。

0 个答案:

没有答案