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 相关文章推荐
innerText和innerHTML 一些问题分析
May 18 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
最简单的js图片切换效果实现代码
Sep 24 Javascript
JS 实现导航栏悬停效果
Sep 23 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
js仿手机页面文件下拉刷新效果
Oct 14 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
Mar 23 Javascript
微信小程序 空白页重定向解决办法
Jun 27 Javascript
详解Vue单元测试case写法
May 24 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 Javascript
vue组件三大核心概念图文详解
May 30 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
Nov 03 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 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
介绍一下Make? 为什么使用make
2016/07/31 面试题
软件测试工程师笔试题带答案
2015/03/27 面试题
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
英语专业学生个人求职信范文
2014/01/06 职场文书
安全标准化实施方案
2014/02/20 职场文书
yy生日主持词
2014/03/20 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
教师读书活动总结
2014/05/07 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
网络销售员岗位职责
2015/04/11 职场文书
医院病假条怎么写
2015/08/17 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python