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;
//相对于原来的绘制直线,修改为循环绘制n段直线
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端直线,算是一个变通的方法。如有更好的方法请留言哦谢谢。

ps:欢迎访问我的小站:模板世界,获取更多有用的前端资源。

XD

ichart.js绘制虚线 ,平均分虚线的更多相关文章

  1. Android_(控件)使用自定义控件在屏幕中绘制一条虚线

    在Android屏幕中绘制虚线,最通用的是自定义控件DashedLine,再将自定义控件放入xml布局中 运行截图: 程序结构 package com.example.asus.gary_042; i ...

  2. 利用d3.js绘制雷达图

    利用d3,js将数据可视化,能够做到数据与代码的分离.方便以后改动数据. 这次利用d3.js绘制了一个五维的雷达图.即将多个对象的五种属性在一张图上对照. 数据写入data.csv.数据类型写入typ ...

  3. 应用wavesurfer.js绘制音频波形图小白极速上手总结

    一.简介 1.1  引   人生中第一份工作公司有语音识别业务,需要做一个web网页来整合语音引擎的标注结果和错误率等参数,并提供人工比对的语音标注功能(功能类似于TranscriberAG等),(博 ...

  4. js 绘制数学函数

    <!-- <!doctype html> --> <html lang="en"> <head> <meta charset= ...

  5. JS 绘制心形线

    JS 绘制心形线 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> < ...

  6. 使用zrender.js绘制体温单(1)

    之前公司请外包做了一个体温单使用的zrender.js 但是代码比较复杂维护性比较低再加上自己技术也不行 最近闲下来的时候看了一下zrender的官网慢慢的摸索并读了下之前的代码,感觉实际并不难,就自 ...

  7. Javascript实战开发:教你使用raphael.js绘制中国地图

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...

  8. d3.js 绘制极坐标图(polar plot)

    0.引言 在极坐标系中,任意位置可由一个夹角和一段相对原点(极点)的距离表示.也就是说,我们可以用 (angle,r) 来表示极坐标系中的点. 1.数据 假设我们有如下数据集[ [10, 0.2], ...

  9. [js]d3.js绘制拓扑树

    echart也支持拓扑树了 所需的json数据格式: children嵌套 vis.js也支持绘制拓扑树 数据格式: nodes: {id, label, title} edges: {from, t ...

随机推荐

  1. Testlink安装问题收录

    1.windows下安装testlink,进入安装页面后,在检查一些相关配置环境时报错,如下:     Checking if /var/testlink/logs/ directory exists ...

  2. JDBC基础与连接sql2012

    JDBC简介 JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包: java.sql javax.sql 以上2个包 ...

  3. 总结Android中遇见的OOM

    一 .Android应用中内存泄漏几种的原因: 1.单例模式导致的内存泄漏: 当调用getInstance时,如果传入的context是Activity的context.只要这个单例没有被释放,这个A ...

  4. pod install 无限卡顿

    pod install  被墙了,请大家换成pod install --verbose --no-repo-update

  5. C# MVC jsonp初接触成功

    利用jsonp进行跨域请求资源 C# MVC ApiControllers准备如下: 1.需要在引用处右键管理NuGet安装jsonp插件 2.在Application_Start()中配置 Glob ...

  6. 用自己赚的钱第一次坐飞机 那feel倍儿爽

    马年春晚上,歌手大张伟的神曲<倍儿爽>如今已传遍大街小巷.其实,不管人家到底有没有炒作,能让我们这些观众感觉到放松.乐呵,那就是一个成功的春晚节目.而今年,我也如同这歌中唱的一样,活得倍儿 ...

  7. HashSet的故事----Jdk源码解读

    Hash,我们在说HashMap的时候,已经知道Hash是散列,Map是映射了. 那么Set又是什么呢 ? 先来看看Set的翻译是什么 n. [数] 集合:一套:布景:[机] 装置 这里Set所取的含 ...

  8. select change下拉框改变事件 设置选定项,禁用select

    select change下拉框改变事件 设置选定项,禁用select 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...

  9. angular-笔记

    ng-model 指令ng-model 指令 绑定 HTML 元素 到应用程序数据.ng-model 指令也可以:为应用程序数据提供类型验证(number.email.required).为应用程序数 ...

  10. js判断输入时间是否大于系统时间

    validator.js中添加验证 beforeCurrentTime : {// 时间不能大于当前时间 validator : function(value) { var myDate = new ...