canvas制作饼图和环形图,使用Excanvas兼容IE67
excanvas 地址:http://excanvas.sourceforge.net/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>canvas</title>
<style>
</style> <!--[if lte IE 9]>
<script src="../html5shiv.js"></script>
<script src="excanvas.js"></script>
<script src="../jquery-1.11.0.min.js"></script>
<!--[if gt IE 9]><!-->
<script src="../jquery-2.1.0.min.js"></script>
<![endif]-->
</head> <body>
<canvas id="pie" width="100" height="100" data-ratio="0.65_0.15_0.20" ></canvas>
<canvas class="doughnut" width="100" height="100" data-ratio="0.66_0.34"></canvas>
<script>
(function($){
$.fn.extend({
pieChart: function(o){
this.each(function(m, n){
var target = $(n),
ratio = target.data('ratio').split('_'),
colors = o.colors,
ctx = n.getContext('2d'),
center = Math.floor(target.height()/2), //圆心
radius = center - (o.borderWidth || 0), //半径
startAngle = Math.PI * 1.5, //起始弧度
endAngle = Math.PI * 1.5; //结束弧度 ctx.fillStyle = o.borderCorlor || '#ffffff';
ctx.arc(center, center, center, 0, Math.PI * 2, true);
ctx.fill(); $.each(ratio, function(i, v){
endAngle = endAngle - v * Math.PI * 2; //结束弧度
ctx.fillStyle = colors[i];
ctx.beginPath(); ctx.moveTo(center, center); //移动到到圆心
ctx.arc(center, center, radius, startAngle, endAngle, true);
ctx.closePath();
ctx.fill(); if(o.stroke){
ctx.strokeStyle = o.stroke.color || '#ffffff';
ctx.lineWidth = o.stroke.width || 1;
ctx.stroke();
}
startAngle = endAngle; //设置起始弧度
});
}); }, doughnutChart: function(o){
this.each(function(m, n){
var target = $(n),
ratio = target.data('ratio').split('_'),
colors = o.colors,
ctx = n.getContext('2d'),
center = Math.floor(target.height()/2),
radius = center,
startAngle = Math.PI * 1.5,
endAngle = Math.PI * 1.5; $.each(ratio, function(i, v){
//弧度 = 角度 * Math.PI / 180
//v*360*Math.PI/180 = v * Math.PI * 2
endAngle = endAngle - v * Math.PI * 2;
ctx.fillStyle = colors[i];
ctx.beginPath(); ctx.moveTo(center, center);
ctx.arc(center, center, radius, startAngle, endAngle, true);
ctx.closePath();
ctx.fill();
startAngle = endAngle;
}); ctx.fillStyle = o.centerColor;
ctx.beginPath();
ctx.arc(center, center, radius-o.borderWidth, 0, Math.PI * 2, true);
ctx.fill();
});
}
}); $(window).on('load', function(){
$('#pie').pieChart({
colors: ['#7cb228', '#abd667', '#ededed'],
borderWidth: 2,
borderCorlor: '#7cb228'
// stroke: {
// color: '#ff0000',
// width: 2
// }
}); $('.doughnut').doughnutChart({
colors: ['#7cb228', '#ededed'],
centerColor: '#ffffff',
borderWidth: 10
});
});
})(jQuery); </script>
</body>
</html>
canvas制作饼图和环形图,使用Excanvas兼容IE67的更多相关文章
- Java 在Excel中添加分离型饼图、环形图
一.概述 Excel中可支持多种不同类型的图表,本文介绍如何绘制分离型饼图和环形图.其中,分离型饼图的绘制可分为整体分离型(即设置饼图分离程度)和局部分离(即设置点爆炸型值)两种情况.下面将以Java ...
- echart 折线图、柱状图、饼图、环形图颜色修改
之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category', b ...
- canvas制作柱形图/折线图/饼状图,Konva写动态饼状图
制作饼状图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- echarts白色实心环形图(空心饼图)的编写
// 数据接入机构统计let myDom = document.getElementById('myChart');let myWidth = myDom.offsetWidth - 5; // 获取 ...
- html5实现饼图和线图
html5实现饼图和线图-我们到底能走多远系列(34) 我们到底能走多远系列(34) 扯淡: 送给各位一段话: 人生是一个不断做加法的过程 从赤条条无牵无挂的来 到学会荣辱羞耻 ...
- 用Canvas制作简单的画图工具
今天用Canvas制作了一个画图工具,非常简单,功能也不是很多,主要有背景网格,画线,画圆,画矩形和画圆角矩形,也用到了canvas的一些基本知识,在这里一一列举. 1.线段的绘制: 如何绘制真正的1 ...
- Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏
Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏 转载 来源:jrainlau 链接:https://segmentfault.com/a/1190000005804860 项 ...
- echarts实现环形图
前端框架使用的angular,使用echarts实现环形图 1. item.component.html <div id="box1" class="pie&quo ...
- HTML5 canvas制作童年的回忆大风车
今天看到一篇CSS3写的大风车http://www.cnblogs.com/yaojaa/archive/2013/01/30/2882521.html,感觉CSS3太神奇了,这在以前用CSS是想都不 ...
随机推荐
- 六时车主 App iOS隐私政策
本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义务对待这些信息.除本隐私权政策另 ...
- 解决hash冲突的三个方法-考虑获取
哈希表值的获取要考虑全部可能空间. 在链地址法中,可能空间就是具有相同hash值的链表. 目录 开放定址法 线性探测再散列 二次探测再散列 伪随机探测再散列 再哈希法 链地址法 建立公共溢出区 优 ...
- * 获取页面参数 * @return 参数打印
/** * 获取页面参数 * @return 参数打印 */ GetUrlParam: function(paraName) { var url = document.location.toStrin ...
- 远程连接阿里云服务器ping不通ip解决方案
搭建了阿里云服务器,发现本地ping不通,查看半天才发现,原来是在阿里云上的安全组少了些东西. 在出入方向上新建一个安全组,就可以搞定了.
- Labview学习笔记(三)
一.数据 1.数值控件 (1)数值控件 根据不同的模拟状态,放置不同控件 (2)显示格式 为了程序显示,需要设置数值型控件的表示法.数值范围.显示格式等属性. 一般来说,长度越长,则可以表示的数值范围 ...
- POJ-1655 Balancing Act(树的重心)
Consider a tree T with N (1 <= N <= 20,000) nodes numbered 1...N. Deleting any node from the t ...
- [luogu1485 HNOI2009] 有趣的数列 (组合数学 卡特兰数)
传送门 Solution 卡特兰数 排队问题的简单变化 答案为\(C_{2n}^n \pmod p\) 由于没有逆元,只好用分解质因数,易证可以整除 Code //By Menteur_Hxy #in ...
- Sessions共享技术设计
概述 分布式session是实现分布式部署的前提, 当前项目由于历史原因未实现分布式session, 但是由于在kubernets中部署多个pod时, 负载均衡的调用链太长, 导致会话不能保持, 所以 ...
- JavaSE 学习笔记之多态(七)
多 态:函数本身就具备多态性,某一种事物有不同的具体的体现. 体现:父类引用或者接口的引用指向了自己的子类对象.//Animal a = new Cat(); 多态的好处:提高了程序的扩展性. 多态的 ...
- bx值
bx值 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Problem De ...