【问题标题】:Chartjs doughnut chart for conditional data用于条件数据的 Chartjs 圆环图
【发布时间】:2018-10-16 12:41:15
【问题描述】:

由于我对图表库还很陌生,就我而言,我被要求根据我的要求实现一个 Chartjs 库。所以我选择了一个chartjs库。 我必须想知道是否有人可以帮助我的用例,那么这对我来说将是一个很好的节省时间。实际上我从早上就开始搜索这个。

实际用例是我有甜甜圈图,我试图在其中显示单个值的数据。当我浏览文档时,chartjs 可以处理一组数据值。但是我的 API 只有一个值,在我的例子中它是一个计数器变量。假设如果我的最大计数器限制是 5000,那么我必须将 5000 显示为最大计数器,而当前计数器是 100,那么我必须在圆环弧中以红色显示它。表示图表消耗了多少类似的数据。

假设总运行次数为 5000 如果运行次数变为 100,那么我们需要从总运行次数中减去 - 当前运行次数 = 4900 在甜甜圈圈内。随着运行次数的增加,我们需要在甜甜圈圆图中显示减少的运行次数。 如果当前运行次数达到总运行次数,则以红色显示圆圈并将计数设为 0。

这可以使用 Chartjs 吗?见下图。

【问题讨论】:

    标签: chart.js


    【解决方案1】:

    在 Chart.js 中没有内置支持这样做,但是,可以使用非常简单的 hack 来实现。查看代码并尝试理解,如果有任何问题,请随时发表评论。

    我使用 chartjs-datalabels 插件在饼图上显示数据标签。

    希望对你有帮助!

    小提琴 -> http://jsfiddle.net/y6mnkz84/7/

      function drawPieChart(value, maxValue) {
      var ctx = document.getElementById("myChart").getContext('2d');
      var myChart = new Chart(ctx, {
        type: 'doughnut',
        data: {
          labels: ["Consumed"],
          datasets: [{
            data: [value, maxValue - value],
            backgroundColor: ['green', 'red'],
          }]
        },
        options: {
          tooltips: {
            enabled: false,
          },
          plugins: {
            datalabels: {
              backgroundColor: function(context) {
                return context.dataset.backgroundColor;
              },
              display: function(context) {
                var dataset = context.dataset;            
                var value = dataset.data[context.dataIndex];
                return value > 0;
              },
              color: 'white'
            }
          }
        }
      });
    }
    
    
    drawPieChart(5000, 5000);
    

    【讨论】:

    • 这实际上很好,但是当 minValue 达到 5000 或更高时,图表显示负值,所以我如何将图表限制为如果值超过其限制,那么我该如何计算重置我的意思是全部归零..任何想法
    • 我已经更新了答案,现在它不会显示零或负值,对于在某个阈值上重置图表有很多方法,做一些研究,
    • Great Kunal,还有一件事,如果我想在甜甜圈圈内显示值,那我该怎么做?
    • 请尝试阅读 chartjs.datalabels 插件的文档,这里是在甜甜圈内显示的更新小提琴 -> jsfiddle.net/y6mnkz84/8
    猜你喜欢
    • 1970-01-01
    • 2021-12-05
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    相关资源
    最近更新 更多