堆积柱状图写了自定义标签显示总和,但是为什么有时候不显示值

mx_screencap_20250516_165353.png

function sumLabel(){  

  const point = this;  

  const points = point.points;  

  const validPoints = points.filter((point) => point.isVisible());  

  if(point == validPoints[validPoints.length - 1]) {  

    let value = 0;  

    for(let i = 0; i < validPoints.length; i++) {  

      value += validPoints[i].value;  

    }  

    return value.toFixed(0);  // 保留整数

  } else {  

    return "";  

  }  

}

FineReport 帆软用户LLL 发布于 2025-5-16 16:58
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
snrtuemcLv8专家互助
发布于2025-5-16 17:00

这个js语句是,最后一个系列上显示汇总和,看你的图表,没显示的,最后一个系列没有值

image.png

最佳回答
0
用户k6280494Lv6专家互助
发布于2025-5-16 17:03(编辑于 2025-5-16 17:03)

function sumLabel(){  

  const point = this;  

  const points = point.points;  

  const validPoints = points.filter((point) => point.isVisible());  

  if(point == validPoints[validPoints.length - 1]) {  

    let value = 0;  

    for(let i = 0; i < validPoints.length; i++) {  

      value += parseInt(validPoints[i].value);  

    }  

    return value.toFixed(0);  // 保留整数

  } else {  

    return "";  

  }  

}

parseInt转成int在试试

最佳回答
0
ID1208Lv6高级互助
发布于2025-5-17 14:53

image.png

最佳回答
0
东云川Lv4见习互助
发布于2025-5-19 14:32(编辑于 2025-5-19 14:34)

之前弄个一个类似的,跟复杂一点 参考  // 找到可见点中优先级最高的系列名

function sumLabel() {

  const point = this;

  const points = point.points;

  const validPoints = points.filter((p) => p.isVisible());

  const seriesNames1 = points.map(point => point.seriesName).reverse().slice(3);

  console.log(seriesNames1);

  let outerSeriesName = null;

  let outervalidPointslength = null;

  // 找到可见点中优先级最高的系列名

  for (let i = 0; i < seriesNames1.length; i++) {

    const seriesName = seriesNames1[i];

    if (validPoints.some((p) => p.seriesName === seriesName)) {

      outerSeriesName = seriesName;

      outervalidPointslength = validPoints.length;

      debugger;

      break;

    }

  }

//组合图去除折线图求和

  if (point.seriesName === outerSeriesName) {

    let value = 0;

    for (let i = 0; i < outervalidPointslength; i++) {

      if (validPoints[i].seriesName != '比例' ) {

        value += validPoints[i].value;

      }

    }

    // 累加的值加上当前点的值,并使用 toLocaleString() 添加千分符

    return Math.round(value*100)/100;

  } else {

    return "";

  }

}

最佳回答
0
CD20160914Lv8专家互助
发布于2025-5-19 16:00
  • 6关注人数
  • 77浏览人数
  • 最后回答于:2025-5-19 16:00
    请选择关闭问题的原因
    确定 取消
    返回顶部