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 多级checkbox选择效果
Aug 20 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
Dec 28 Javascript
优化javascript的执行效率一些方法总结
Dec 25 Javascript
JS弹出层的显示与隐藏示例代码
Dec 27 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
Jan 18 Javascript
RequireJS 依赖关系的实例(推荐)
Jan 21 Javascript
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
vue地区选择组件教程详解
May 04 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
基于Vue插入视频的2种方法小结
Apr 02 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.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
js脚本实现数据去重
2014/11/27 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
js验证密码强度解析
2020/03/18 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
三年级数学教学反思
2014/01/31 职场文书
平面设计师岗位职责
2014/09/18 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS