ichart.js绘制虚线、平均分虚线效果的实现代码


Posted in Javascript onMay 05, 2016

ichart.js绘制虚线、平均分虚线效果的实现代码

var Data=new Array(); 
    Data[0] = { 
      labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"], 
      datasets : [ 
        { 
          name : '优秀率', 
          color:'#1dbcfe', 
          line_width:4, 
          value : [80,75,92,62,0] 
        } 
      ] 
    } 
    Data[1] = { 
      labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"], 
      datasets : [ 
        { 
          name : '优秀率', 
          color:'#1dbcfe', 
          line_width:4, 
          value : [50,11,62,77,90] 
        } 
      ] 
    } 
    Data[2] = { 
      labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"], 
      datasets : [ 
        { 
          name : '优秀率', 
          color:'#1dbcfe', 
          line_width:4, 
          value : [80,51,32,44,80] 
        } 
      ] 
    } 
     
    var _bodyWidth=$('body').width()-16; 
    $('.item').each(function(i){ 
      var _id=$(this).find('.canvas-wrap').attr('id'); 
      var chart = new iChart.LineBasic2D({ 
        render : _id, 
        data: Data[i].datasets, 
        align:'center', 
        border:0, 
        width : _bodyWidth*2, 
        height : _bodyWidth*1.2, 
        background_color:'#fafafa', 
        animation : true,//开启过渡动画 
        animation_duration:600,//600ms完成动画 
         
        sub_option : { 
          smooth : true, 
          hollow:false, 
          hollow_inside:false, 
          point_size:16, 
          listeners : { 
            parseText : function(r, t) { 
              return t+'%'; 
            } 
          }, 
          label:{fontsize:24,color:'#333'}, 
        }, 
        coordinate:{ 
          width:_bodyWidth*1.6, 
          valid_width:_bodyWidth*1.4, 
          height:_bodyWidth*1.6*.5, 
          striped_factor : 0.18, 
          axis:{ 
            color:'#aaa', 
            width:[0,0,8,0] 
          }, 
          scale:[{ 
             position:'left',  
             start_scale:0, 
             end_scale:100, 
             scale_space:20, 
             scale_size:2, 
             scale_enable : false, 
             label : {color:'#999',fontsize:24}, 
             scale_color:'#999'
          },{ 
             position:'bottom', 
             label : {color:'#999',fontsize:24}, 
             scale_enable : false, 
             labels:Data[i].labels 
          }] 
        } 
         
      }); 
      /** 
       *自定义组件,画平均线。 
       */
      chart.plugin(new iChart.Custom({ 
          drawFn:function(){ 
            /** 
             *计算平均值的高度(坐标Y值) 
             */ 
             var _total=0; 
            $.each(Data[i].datasets[0].value,function(i,val){ 
              _total+=val; 
            }); 
            var avg = _total/Data[i].datasets[0].value.length,//计算出的平均分写在这即可 
              coo = chart.getCoordinate(), 
              x = coo.get('originx'), 
              W = coo.width, 
              S = coo.getScale('left'), 
              H = coo.height, 
              h = (avg - S.start) * H / S.distance, 
              y = chart.y + H - h; 
            for(xi=x;xi<=(x+W);xi=xi+32){ 
              chart.target.line(xi,y,xi+16,y,2,'#fe941c'); 
            } 
            chart.target.textAlign('start') 
            .textBaseline('middle') 
            .textFont('500 20px Verdana') 
            .fillText('平均战胜率'+avg+'%',x+W-100,y-20,false,'#fe941c'); 
          } 
      })); 
      chart.draw(); 
    });

以上代码是绘制多个折线图的js示例,以及在每个折线图内绘制平均分虚线的方法。

ichart.js是一个十分不错的图标绘制js,缺点是在移动端需要先设置两倍大小,再用css和js手动缩小到正常范围,以使其在屏幕上保持高清。

官网有绘制平均线的示例,但是没有虚线的,而一般为了不混淆,平均线都是使用虚线绘制的。这里我只是循环绘制了n端直线,算是一个变通的方法。如有更好的方法请留言哦谢谢。

以上这篇ichart.js绘制虚线、平均分虚线效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的对象化编程
Jan 16 Javascript
js下将字符串当函数执行的方法
Jul 13 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
jquery实现简单实用的弹出层效果代码
Oct 15 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
May 05 Javascript
jquery获取复选框checkbox的值实现方法
May 30 Javascript
AngularJS通过$sce输出html的方法
Sep 22 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 Javascript
jquery实现的table排序功能示例
Mar 10 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
Oct 28 Javascript
JavaScript实现手风琴效果
Feb 18 Javascript
animate 实现滑动切换效果【实例代码】
May 05 #Javascript
JavaScript中各种引用类型的常用操作方法小结
May 05 #Javascript
Sea.JS知识总结
May 05 #Javascript
在Node.js中使用Javascript Generators详解
May 05 #Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 #Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 #Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
May 05 #Javascript
You might like
php继承的一个应用
2011/09/06 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
vue实现购物车案例
2020/05/30 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
商务日语毕业生自荐信范文
2013/11/14 职场文书
上课说话检讨书大全
2014/01/22 职场文书
服装店营销方案
2014/03/10 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
文明班级建设方案
2014/05/15 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书