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 相关文章推荐
document.onreadystatechange事件的用法分析
Oct 17 Javascript
Ajax提交与传统表单提交的区别说明
Feb 07 Javascript
iframe里的页面禁止右键事件的方法
Jun 10 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
原生JS实现美图瀑布流布局赏析
Sep 07 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 Javascript
bootstrap实现二级下拉菜单效果
Nov 23 Javascript
解决vue中修改了数据但视图无法更新的情况
Aug 27 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
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
JAVA/JSP学习系列之六
2006/10/09 PHP
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
vue使用自定义icon图标的方法
2018/05/14 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python实现的端口扫描功能示例
2018/04/08 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Python实现打印实心和空心菱形
2019/11/23 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
django跳转页面传参的实现
2020/09/17 Python
python3实现飞机大战
2020/11/29 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
求高于平均分的学生学号及成绩
2016/09/01 面试题
高中微机老师自我鉴定
2014/02/16 职场文书
学校募捐倡议书
2014/05/14 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
户外亲子活动总结
2015/05/08 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书