为了账号安全,请及时绑定邮箱和手机立即绑定

当数据为0时,如何使chartJs堆积条总是四舍五入?

当数据为0时,如何使chartJs堆积条总是四舍五入?

慕的地8271018 2022-10-08 18:09:16
我想出了这个小提琴:https : //jsfiddle.net/2s09hqLu/ 它有我想要的堆叠圆角图表。但问题是当数据数组中的值为 0 时。它不会使它四舍五入。我总是希望它是四舍五入我该怎么做?data: [20, 5, 0, 15, 12, 13]正如您在黄色上看到的那样,它的平面不是圆形的。我该如何解决这个问题?
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

我在下面尝试过,并且可以完美地处理任何数量的数据集。


var lastVisible;

  var datasetsLength = this._chart.data.datasets.length;

  this._chart.data.datasets.map((e,index)=>{

    lastVisible=datasetsLength-1;

    //to find the depth of datasets and get non-zero value

    for(var i=lastVisible;i>0;i--){

    if(!this._chart.getDatasetMeta(i).hidden){

      if(this._chart.data.datasets[i].data[this._index] != 0){

        lastVisible = i;

        break;

      }

    }

    } 

  })


查看完整回答
反对 回复 2022-10-08
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

我已经更新了您的 Fiddle 唯一行号118: https ://jsfiddle.net/r7hvn2ox/

从:

if (rounded){

至:

if (rounded || this._chart.data.datasets[1].data[this._index] == 0) {

我知道它对 2 个数据集的修复:[{}, {}] 条,但它可以在任何数据集的值以及本示例中完美地工作。


查看完整回答
反对 回复 2022-10-08
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

rounded如果它呈现特定项目,您可以向变量添加额外的表达式。这不是最好的方法。


var rounded = this._datasetIndex  === lastVisible || this._index === 2;

或者,您可以比较每个数据集中的值


var cond = false;


if(this._datasetIndex === 0) {

  var datasets = this._chart.data.datasets;

  var dataset = datasets[this._datasetIndex];

  var currentData = dataset.data[this._index];

  var nextData = datasets[this._datasetIndex + 1].data[this._index]

  cond = currentData !== 0 && nextData === 0;

}


var rounded = this._datasetIndex  === lastVisible || cond;


查看完整回答
反对 回复 2022-10-08
  • 3 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号