Echarts数据可视化 【象限图】

option = {
        title: {
          text: '象限图'
        },
        toolbox: {
          feature: {
            saveAsImage: { show: true }
          }
        },
        dataZoom: [
          {
            id: 'dataZoomX',
            type: 'slider',
            XAxisIndex: [0],
            filterMode: 'empty'
          }
        ],
        legend: {
          type: 'scroll',
          top: '5%',
          left: 'center'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross'
          }
        },
        xAxis: {
          min: function (value) {
            if(value.min >3){
              return Math.floor(value.min-3);
            }else {
              return Math.floor(value.min);
            }
          },
          max: function (value) {
            return Math.floor(value.max);
          }
        },
        yAxis: {
          min: function (value) {
            if(value.min >3){
              return Math.floor(value.min-3);
            }else {
              return Math.floor(value.min);
            }
          },
          max: function (value) {
              return Math.floor(value.max);
          }
        },
        series: [
          {
            symbolSize: 10,
            data: [
            ],
            markLine : {
              lineStyle: {
                normal: {
                  color: 'blue',
                  type: 'solid'
                }
              },
              data : [
                {type : 'average', name: '平均值'},
                {type : 'average', valueDim:'x' }
              ]
            },
            type: 'scatter'
          },
        ]
      }
formatFun: (params) => {
        return new Promise((resolve, reject) => {
          let res = params.res
          let option = params.option
          let series = []
          let a =Object.values(res.value.xAxis)[0]
          let type =new Set(a);
          let arr=[...type]
          let s =Object.values(res.value.yAxis)[0]
          // 组装指示器及数值
          for (let j = 0; j <arr.length ; j++) {
            let seriesData = {}
            seriesData.name = arr[j]
            seriesData.type ='scatter'
            seriesData.symbolSize=10
            let data = []
            for (let i = 0; i <a.length ; i++) {
              let   coordinatePoints= []
              Object.keys(res.value.yAxis).forEach(item => {
                if(arr[j]===a[i] ){
                  coordinatePoints.push(res.value.yAxis[item][i])
                }
              })
              data.push(coordinatePoints)
            }
            if(j+1==arr.length){
              seriesData.markLine={
                lineStyle: {
                  normal: {
                    color: 'blue',
                    type: 'solid'
                  }
                },
                data : [
                  {type : 'average', name: '平均值'},
                  {type : 'average', valueDim:'x' }
                ]
              }
            }
            seriesData.data=data
            series.push(seriesData)
            option.series[j] = series
          }
          option.series = series
          resolve({ option: option })
        })
      }

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值