canvas画饼状图
来源:互联网 发布:java中compareto 编辑:程序博客网 时间:2024/06/03 01:37
canvas画饼状图
在此写了一个简单的环形饼状图,如大家有更好的方法,多多交流
html代码
pieChart.html
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-1.8.0.min.js"></script> </head> <body> <div> <canvas id="doughnut" width="100px" height="100px"></canvas> </div> <script type="text/javascript" src="js/canvas.js" ></script> </body></html>
js代码
canvas.js
$(document).ready(function(){ var canvas=document.getElementById("doughnut"); var param={ "canvas" : canvas, "colors": ['#ec644c', '#d166b1','#53c5ac',"#72acea","cccccc"], "ratio" : [0.39,0.26,0.13,0.22], "intermediateColor" : "rgba(225,225,225,0.2)", "centerColor" :'#ffffff', "borderWidth" : 35 } doughnutChart(param);});/** * canvas 环形饼状图 * @param canvas 获取canvas元素,必传 * @param colors 饼状图各部分占比的背景色 * @param ratio 各部分所占比例 例如 12.9% 传0.129 * @param centerColor 环形饼状图内心圆填充色 * @param intermediateColor 中间圆填充色(可不传) * @param borderWidth 环形宽度(外圆半径减去内圆半径) */ function doughnutChart(param){ var target = param.canvas,//获取 canvas元素 borderWidth=param.borderWidth,//环形宽度(外圆半径减去内圆半径) centerColor=param.centerColor,//环形饼状图内心圆填充色 intermediateColor=param.intermediateColor,//中间圆填充色(可不传) ratio=param.ratio,//展示各百分比,例如 12.9% 传0.129 colors = param.colors,//各比例背景色 ctx = target.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; }); if(intermediateColor != undefined&&intermediateColor != ""){ ctx.fillStyle =intermediateColor; ctx.beginPath(); ctx.arc(center, center, radius-borderWidth+4, 0, Math.PI * 2, true); ctx.fill(); } ctx.fillStyle =centerColor; ctx.beginPath(); ctx.arc(center, center, radius-borderWidth, 0, Math.PI * 2, true); ctx.fill(); }
效果图
0 0
- canvas画饼状图
- android 画饼图 Canvas drawArc
- MFC画饼状图
- 画饼状图-UIBezierPath
- 画饼状图(pie)
- iOS 画饼状图
- matplotlib画饼状图
- 画饼状图的控件
- R ggplot2画饼状图
- 画饼图
- 画饼图
- 画饼图
- 画饼图
- DotNetCharting用法---画饼状图、柱状图
- 手把手教你画饼状图C#
- 34.画圆 画圆弧 画饼状图
- 用d3.js画饼状图
- echarts在地图上画饼状图
- python中文件的读写(含爬虫内容)
- 完全背包
- 存储引擎
- POJ
- APK 瘦身
- canvas画饼状图
- GPU处理图像 Shader的入门
- mac下如何查看指定端口被谁占用并且杀死该进程
- Hibernate对tinyint(1)的特殊处理
- 索引
- MySql-5.7.17 -winx64的安装配置
- 配置Mybatis和Jackson使用java 8 ZonedDateTime等
- 跨域
- javaIO流中的字节字符流整理