zoukankan      html  css  js  c++  java
  • echarts 实战 : 怎么处理特殊的图表数字 label ?

    所谓Label,就是在图表上面显示的那个数字。

    但有的时候我们需要柱状图堆叠。

    那如果我们需要所有数字都在外面,并且以 320/210/310/410/1320 这样的形式显示呢?

    那么 echarts 本身提供的属性就没有办法了。

    我们就需要自己写方法算一下。

      // 特殊label
      getParallelLabel = (normalData) => {
        let labelResult = []
        // 注入数据
        normalData.sData.forEach((item) => {
          item.data.forEach((item_2, index_2) => {
            if (!labelResult[index_2]) {
              labelResult[index_2] = (item_2 + '/')
            } else {
              labelResult[index_2] += (item_2 + '/')
            }
          })
        })
        // 去掉最后一个
        return labelResult.map(item => item.substring(0, (item.length-1)))
      }

    然后在渲染时调用这个方法。

        // 判定是否需要 label
        if (settingData.labelFlag && !settingData.labelFlag.mode) {
    // ...
    } else if (settingData.labelFlag && settingData.labelFlag.mode && settingData.labelFlag.mode === "parallel") { // 计算自定义label字符 const labelResult = this.getParallelLabel(normalData) baseSeriesObject.label = { normal: { fontSize:16, show: true, position: settingData.xyType === 'x' ? 'top' : 'right', color:'rgba(9,178,215,1)', formatter:(params) => { // console.log(params) if (params.seriesIndex === 2) { return labelResult[params.dataIndex] } else { return "" } } } } }

    因为这个项目是 react 做的,所以我写了一个 echarts 组件。

    这样,我在页面里调用这个组件的时候,就可以根据需要传一些判断用的属性,比如:

          settingData:{
            xyType:'y',
            stackFlag:true,
            color: ['rgba(68,238,224,1)', 'rgba(17,215,255,1)', 'rgba(251,203,73,1)'],
            barWidth:"20%",
            backgroundFlag:false,
            legendFlag:true,
            labelFlag:{
              mode:"parallel"
            },
            grid:{
              top:50,
              left:125
            }
          }

    settingData.labelFlag.mode === "parallel"

    就是我自定义的属性。

    以上。

  • 相关阅读:
    render 动态增减表单项校验 小结
    面试题总结2
    禁止蒙层底部页面跟随滚动
    前端面试题总结1
    ||与??的区别,??非空运算符,??=非空赋值运算符 ??.链判断运算符 Object.defineProperty 与Proxy的区别
    chrome 代码调试实用小技巧
    Ubuntu安装ibmmq
    Python语言规范之Pylint的使用
    Python发送SMTP邮件指南
    快看那个运维妹子在学算法【二分查找】
  • 原文地址:https://www.cnblogs.com/foxcharon/p/11875523.html
Copyright © 2011-2022 走看看