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

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

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,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',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,2,'#fe941c'); } chart.target.textAlign('start') .textBaseline('middle') .textFont('500 20px Verdana') .fillText('平均战胜率'+avg+'%',x+W-100,y-20,false,'#fe941c'); } })); chart.draw(); });</pre>

以上代码是绘制多个折线图的js示例,以及在每个折线图内绘制平均分虚线的方法。

ichart.js是一个十分不错的图标绘制js,缺点是在移动端需要先设置两倍大小,再用css和js手动缩小到正常范围,以使其在屏幕上保持高清。

官网有绘制平均线的示例,但是没有虚线的,而一般为了不混淆,平均线都是使用虚线绘制的。这里我只是循环绘制了n端直线,算是一个变通的方法。如有更好的方法请留言哦谢谢。

以上这篇ichart.js绘制虚线、平均分虚线效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...