echarts统计x轴区间的数值实例代码详解


Posted in Javascript onJuly 07, 2019

有时我们需要统计自定义echarts图,统计x轴区间的y轴数量。

思路是利用echarts的自定义配置:option.series[i].type='custom'中的renderItem(params, api)函数进行处理,这里包括了两个参数:params是对应每一个dataItem的数据信息;api是可调用的方法(api.value()和api.coord())。详情可以查看官方文档。

以下是改自官方实例: https://www.echartsjs.com/examples/editor.html?c=bar-histogram ,把以下引用 ecStat.js来处理数据的部分修改成自己拼装成需要的格式

var bins = ecStat.histogram(girth);
var min = Infinity;
var max = -Infinity;
edata = echarts.util.map(bins.data, function (item, index) {
 var x0 = bins.bins[index].x0;
 var x1 = bins.bins[index].x1;
 interval = x1 - x0;
 min = Math.min(min, x0);

max = Math.max(max, x1);

return [x0, x1, item[1]];
});

原因是引用ecStat.js处理数据时,有时出现以下错误,暂时没找到解决方法。

echarts统计x轴区间的数值实例代码详解

改写后的代码显示效果如下:

echarts统计x轴区间的数值实例代码详解

<div id="main1" style="width: 1000px;height: 500px"></div>
<script type="text/javascript">
 $(function(){
  generateChart();
 });
 function generateChart(){
  var myChart1 = echarts.init(document.getElementById('main1'));
  var girth = [19, 26.4, 34, 41.4, 42.4, 42.7, 42.9, 43.1, 43.2, 43.3, 43.3, 43.3, 44.9, 45.4, 46.2, 46.7, 48, 48, 49.1, 54.2];
  //自定义拼装数据方式

 var edata = new Array();
  var scopeMin = 0;
  var scopeMax = 100;
  var interval = (scopeMax-scopeMin)/10;
  var tmin = scopeMin;
  while(tmin < scopeMax){
   var x0 = tmin; 
   var x1 = tmin+interval;
   var samplenum = 0;
   for(var i=0;i<girth.length;i++){
    if((scopeMin == x0 && girth[i] < x0) || (x0 <= girth[i] && x1 > girth[i])
     ||(scopeMin == x1 && girth[i] > x1)) {
     samplenum++;    
    }
   }
   tmin += interval;
   edata.push([x0, x1, samplenum]);
  }
  var option = {
   color: ['rgb(25, 183, 207)'],
   grid: {
    top: 80,
    containLabel: true
   },
   xAxis: [{
    type: 'value',
    min: scopeMin,
    max: scopeMax,
    interval: interval
   }],
   yAxis: [{
    type: 'value',
   }],
   series: [{
    name: 'height',
    type: 'custom',
    renderItem: renderItem,
    label: {
     normal: {
      show: true,
      position: 'top'
     }
    },
    encode: {
     x: [0, 1],
     y: 2,
     tooltip: 2,
     label: 2
    },
    // data: data
    data: edata
   }]
  };
  myChart1.setOption(option);
  window.onresize = function () {
   myChart1.resize();
  }
 }
 function renderItem(params, api) {
  var yValue = api.value(2);
  var start = api.coord([api.value(0), yValue]);
  var size = api.size([api.value(1) - api.value(0), yValue]);
  var style = api.style();
  return {
   type: 'rect',
   shape: {
    x: start[0] + 1,
    y: start[1],
    width: size[0] - 2,
    height: size[1]
   },
   style: style
  };
 }
</script>

总结

以上所述是小编给大家介绍的echarts统计x轴区间的数值实例代码详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
juqery 学习之四 筛选查找
Nov 30 Javascript
javascript 原型继承介绍
Aug 30 Javascript
浅析jQuery中常用的元素查找方法总结
Jul 04 Javascript
jquery实现手机发送验证码的倒计时代码
Feb 12 Javascript
网站接入QQ登录的两种方法
Jul 22 Javascript
jquery获取节点名称
Apr 26 Javascript
AngularJS基础 ng-init 指令简单示例
Aug 02 Javascript
jQuery实现的自定义弹出层效果实例详解
Sep 04 Javascript
jQuery序列化表单成对象的简单实现
Nov 29 Javascript
CodeMirror js代码加亮使用总结
Mar 25 Javascript
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 #Javascript
详解django模板与vue.js冲突问题
Jul 07 #Javascript
django中使用vue.js的要点总结
Jul 07 #Javascript
Vue使用lodop实现打印小结
Jul 06 #Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 #Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 #Javascript
vue router总结 $router和$route及router与 router与route区别
Jul 05 #Javascript
You might like
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
php bootstrap实现简单登录
2016/03/08 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
使用python实现省市三级菜单效果
2016/01/20 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
详解python程序中的多任务
2020/09/16 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
满月酒主持词
2014/03/27 职场文书
政府信息公开实施方案
2014/05/09 职场文书
HR求职自荐信范文
2014/06/21 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
详解Python flask的前后端交互
2022/03/31 Python
源码安装apache脚本部署过程详解
2022/09/23 Servers