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 相关文章推荐
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 Javascript
两种JS实现屏蔽鼠标右键的方法
Aug 20 Javascript
微信小程序 开发工具快捷键整理
Oct 31 Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
Dec 14 Javascript
前端axios下载excel文件(二进制)的处理方法
Jul 31 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 Javascript
vue中watch和computed的区别与使用方法
Aug 23 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中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
教师求职推荐信范文
2013/11/20 职场文书
会计系中文个人求职信
2013/12/24 职场文书
周年庆典邀请函范文
2014/01/24 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
中专生自荐信
2014/06/25 职场文书
邹越演讲观后感
2015/06/15 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
Mysql排序的特性详情
2021/11/01 MySQL