PHP Classes

File: vendors/echarts/src/chart/map/mapDataStatistic.js

Recommend this page to a friend!
  Classes of Jorge Castro   Gentelella BladeOne   vendors/echarts/src/chart/map/mapDataStatistic.js   Download  
File: vendors/echarts/src/chart/map/mapDataStatistic.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Gentelella BladeOne
Render templates using Bootstrap for presentation
Author: By
Last change:
Date: 3 years ago
Size: 2,585 bytes
 

Contents

Class file image Download
define(function (require) { var zrUtil = require('zrender/core/util'); // FIXME ??? /** * @param {Array.<module:echarts/data/List>} datas * @param {string} statisticsType 'average' 'sum' * @inner */ function dataStatistics(datas, statisticsType) { var dataNameMap = {}; var dims = ['value']; for (var i = 0; i < datas.length; i++) { datas[i].each(dims, function (value, idx) { var name = datas[i].getName(idx); dataNameMap[name] = dataNameMap[name] || []; if (!isNaN(value)) { dataNameMap[name].push(value); } }); } return datas[0].map(dims, function (value, idx) { var name = datas[0].getName(idx); var sum = 0; var min = Infinity; var max = -Infinity; var len = dataNameMap[name].length; for (var i = 0; i < len; i++) { min = Math.min(min, dataNameMap[name][i]); max = Math.max(max, dataNameMap[name][i]); sum += dataNameMap[name][i]; } var result; if (statisticsType === 'min') { result = min; } else if (statisticsType === 'max') { result = max; } else if (statisticsType === 'average') { result = sum / len; } else { result = sum; } return len === 0 ? NaN : result; }); } return function (ecModel) { var seriesGroupByMapType = {}; ecModel.eachSeriesByType('map', function (seriesModel) { var mapType = seriesModel.get('map'); seriesGroupByMapType[mapType] = seriesGroupByMapType[mapType] || []; seriesGroupByMapType[mapType].push(seriesModel); }); zrUtil.each(seriesGroupByMapType, function (seriesList, mapType) { var data = dataStatistics( zrUtil.map(seriesList, function (seriesModel) { return seriesModel.getData(); }), seriesList[0].get('mapValueCalculation') ); seriesList[0].seriesGroup = []; seriesList[0].setData(data); // FIXME Put where? for (var i = 0; i < seriesList.length; i++) { seriesList[i].seriesGroup = seriesList; seriesList[i].needsDrawMap = i === 0; } }); }; });