栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

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

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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(){ 
      
      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绘制虚线、平均分虚线效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/97250.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号