您好,欢迎访问一九零五行业门户网

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

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绘制虚线、平均分虚线效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
其它类似信息

推荐信息