Eecharts中自定义图表设置最大值,平均值,最小值

     考虑到后期在做统计时可能还需要用到,在这里就做一个记录吧。

var dimensions = [

        'name', '平均值', '', '', '', '最小值', '最大值'

      ]

      var data = [

        // 第一个值为点,平均值、第二个值为x轴坐标、第三个值没用、第四个值没用、第五个值为最小值、第六个值为最大值

        ['< 9.9mm', 98, 50, 0, 0, 76, 120],

        ['9.9mm-25mm', 155.8, 100, 126.03, 156.03, 129.8, 188.8],

        ['24.9mm-49.9mm', 203.25, 150, 151.56, 187.56, 183.25, 249.25],

        ['44.9mm-99.9mm', 256, 200, 98.5, 136.5, 236, 279]

      ]

      function renderItem (params, api) {

        var children = []

        var coordDims = ['x', 'y']

        for (var baseDimIdx = 0; baseDimIdx < 1; baseDimIdx++) {

          var otherDimIdx = 1 - baseDimIdx

          var encode = params.encode

          var baseValue = api.value(encode[coordDims[baseDimIdx]][0])

          var param = []

          param[baseDimIdx] = baseValue

          param[otherDimIdx] = api.value(encode[coordDims[otherDimIdx]][1])

          var highPoint = api.coord(param)

          param[otherDimIdx] = api.value(encode[coordDims[otherDimIdx]][2])

          var lowPoint = api.coord(param)

          var halfWidth = 10

          var style = api.style({

            stroke: api.visual('color'),

            fill: null

          })

          children.push({

            type: 'line',

            transition: ['shape'],

            shape: makeShape(

              baseDimIdx,

              highPoint[baseDimIdx] - halfWidth, highPoint[otherDimIdx],

              highPoint[baseDimIdx] + halfWidth, highPoint[otherDimIdx]

            ),

            style: api.style({

              stroke: "#70E0B8",

              fill: null

            })

          }, {

            type: 'line',

            transition: ['shape'],

            shape: makeShape(

              baseDimIdx,

              highPoint[baseDimIdx], highPoint[otherDimIdx],

              lowPoint[baseDimIdx], lowPoint[otherDimIdx]

            ),

            style: style

          }, {

            type: 'line',

            transition: ['shape'],

            shape: makeShape(

              baseDimIdx,

              lowPoint[baseDimIdx] - halfWidth, lowPoint[otherDimIdx],

              lowPoint[baseDimIdx] + halfWidth, lowPoint[otherDimIdx]

            ),

            style: api.style({

              stroke: "#FF3E3E",

              fill: null

            })

          })

        }

        function makeShape (baseDimIdx, base1, value1, base2, value2) {

          var shape = {}

          shape[coordDims[baseDimIdx] + '1'] = base1

          shape[coordDims[1 - baseDimIdx] + '1'] = value1

          shape[coordDims[baseDimIdx] + '2'] = base2

          shape[coordDims[1 - baseDimIdx] + '2'] = value2

          return shape

        }

        return {

          type: 'group',

          children: children

        }

      }

      let option = {

        tooltip: {

        },

        grid: {

          top: '16%',

          left: 0,

          right: '4%',

          bottom: '5%',

          containLabel: true

        },

        xAxis: {},

        yAxis: {},

        series: [{

          type: 'scatter',

          name: 'error',

          data: data,

          dimensions: dimensions,

          encode: {

            x: 2,

            y: 1,

            tooltip: [6, 1, 5],

            itemName: 0

          },

          itemStyle: {

            color: '#77bef7'

          }

        }, {

          type: 'custom',

          name: 'error',

          renderItem: renderItem,

          dimensions: dimensions,

          encode: {

            x: [2, 3, 4],

            y: [1, 5, 6],

            tooltip: [6, 1, 5],

            itemName: 0

          },

          data: data,

          z: 100

        }]

      }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一个基于JavaScript的开源可视化库,用于创建交互式的图表和数据可视化。它提供了丰富的图表类型和灵活的配置选项,可以满足各种数据展示需求。 要求最大值最小值平均值,你可以使用ECharts提供的数据处理功能来实现。以下是一种常见的方法: 1. 首先,你需要准备好要展示的数据。可以是一个数组,每个元素代表一个数据点。 2. 使用ECharts的数据处理模块(dataZoom)来对数据进行处理。你可以通过以下步骤来获取最大值最小值平均值: - 使用`echarts.dataTool.prepareBoxplotData`方法将数据转换为盒须图所需的格式。 - 通过`echarts.dataTool.getMinMax`方法获取数据的最大值最小值。 - 使用JavaScript的`reduce`方法计算数据的平均值。 下面是一个示例代码,展示了如何使用ECharts来求取最大值最小值平均值: ```javascript // 假设你已经引入了ECharts库,并创建了一个图表实例myChart // 准备要展示的数据 var data = [10, 20, 30, 40, 50]; // 将数据转换为盒须图所需的格式 var boxplotData = echarts.dataTool.prepareBoxplotData(data); // 获取数据的最大值最小值 var min = echarts.dataTool.getMinMax(data).min; var max = echarts.dataTool.getMinMax(data).max; // 计算数据的平均值 var sum = data.reduce(function(a, b) { return a + b; }); var average = sum / data.length; // 在图表展示最大值最小值平均值 myChart.setOption({ series: [{ type: 'boxplot', data: boxplotData }], tooltip: { formatter: function(params) { return '最大值:' + max + '<br>最小值:' + min + '<br>平均值:' + average; } } }); ``` 这样,你就可以在ECharts图表展示最大值最小值平均值了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值