html5表格设计(Html5饼图绘制实现统计图的方法)
类别:Web前端 浏览量:2219
时间:2021-10-16 00:02:18 html5表格设计
Html5饼图绘制实现统计图的方法Html5提供了强大的绘图API,让我们能够使用javascript轻松绘制各种图形。本文将主要讲解使用HTML5绘制饼图(统计图)的方法。先看一下饼图效果:
这个图是动态生成的,根据传入的比例参数(数组),来动态绘制饼图。饼图的大小也是根据<canvas>高度来动态调整的。
全部代码如下:
<!DOCTYPE html> <html> <head> <title>Canvas测试</title> <meta charset="UTF-8"> <script> //绘制饼图 function drawCircle(canvasId, data_arr, color_arr, text_arr) { var c = document.getElementById(canvasId); var ctx = c.getContext("2d"); var radius = c.height / 2 - 20; //半径 var ox = radius + 20, oy = radius + 20; //圆心 var width = 30, height = 10; //图例宽和高 var posX = ox * 2 + 20, posY = 30; // var textX = posX + width + 5, textY = posY + 10; var startAngle = 0; //起始弧度 var endAngle = 0; //结束弧度 for (var i = 0; i < data_arr.length; i++) { //绘制饼图 endAngle = endAngle + data_arr[i] * Math.PI * 2; //结束弧度 ctx.fillStyle = color_arr[i]; ctx.beginPath(); ctx.moveTo(ox, oy); //移动到到圆心 ctx.arc(ox, oy, radius, startAngle, endAngle, false); ctx.closePath(); ctx.fill(); startAngle = endAngle; //设置起始弧度 //绘制比例图及文字 ctx.fillStyle = color_arr[i]; ctx.fillRect(posX, posY + 20 * i, width, height); ctx.moveTo(posX, posY + 20 * i); ctx.font = 'bold 12px 微软雅黑'; //斜体 30像素 微软雅黑字体 ctx.fillStyle = color_arr[i]; //"#000000"; var percent = text_arr[i] + ":" + 100 * data_arr[i] + "%"; ctx.fillText(percent, textX, textY + 20 * i); } } function init() { //绘制饼图 //比例数据和颜色 var data_arr = [0.05, 0.25, 0.6, 0.1]; var color_arr = ["#00FF21", "#FFAA00", "#00AABB", "#FF4400"]; var text_arr = ["第一季度", "第二季度", "第三季度", "第四季度"]; drawCircle("canvas_circle", data_arr, color_arr, text_arr); } //页面加载时执行init()函数 window.onload = init; </script> </head> <body> <h3>HTML5绘制饼图演示</h3> <p> <canvas id="canvas_circle" width="500" height="300" style="border:2px solid #0026ff;" > 浏览器不支持canvas </canvas> </p> </body> </html>
这个函数可以直接使用,如果想做的更漂亮,可以增加一些额外的美观绘制。
本代码最大的灵活性是将绘制参数与绘制代码分离,饼图大小根据Canvas容器高度自动调整。传递参数方式如下:
var data_arr = [0.05, 0.25, 0.6, 0.1]; //比例数据 var color_arr = ["#00FF21", "#FFAA00", "#00AABB", "#FF4400"]; //颜色 var text_arr = ["第一季度", "第二季度", "第三季度", "第四季度"]; //文字 //绘制饼图 drawCircle("canvas_circle", data_arr, color_arr, text_arr);
到此这篇关于Html5饼图绘制实现统计图的方法的文章就介绍到这了,更多相关Html5饼图统计图内容请搜索开心学习网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开心学习网!
您可能感兴趣
- html5如何使用svg(将SVG图引入到HTML页面的实现)
- html5长按动画效果(HTML5自定义元素播放焦点图动画的实现)
- html5的新特性
- ih5如何点击按钮跳转至网页(HTML5跳转小程序wx-open-launch-weapp的示例代码)
- html5封闭ios(Html5 页面适配iPhoneX就是那么简单)
- HTML5中新增的Input类型
- html5中table属性(Html5之自定义属性data-,dataset)
- html5可以做语音聊天吗(基于Html5实现的语音搜索功能)
- html5开发图片(HTML5开发动态音频图的实现)
- html5基本代码文字颜色(html5默认气泡修改的代码详解)
- html5 spellcheck属性
- html5新增全局属性(HTML5自定义属性的问题分析)
- HTML5 <figure> 、<figcaption>标签
- html5移动app开发实战(html5启动原生APP总结)
- HTML5 <abbr>标签
- html5播放器按菜单键没反应(解决HTML5中的audio在手机端和微信端的不能自动播放问题)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
- 金球奖只青睐那些会戴珠宝的女人(金球奖只青睐那些会戴珠宝的女人)
- 浙江省一个县,人口超40万,建县历史超1100年(浙江省一个县人口超40万)
- 五代十国南唐历代国君(五代十国南唐历代国君)
- 飞机引进工程师杨隆 匠人匠心,只争朝夕(飞机引进工程师杨隆)
热门推荐
- react代码展示(教你如何从 html 实现一个 react)
- nginx指令大全(Nginx常用技巧使用实例汇总)
- javascript怎么编写游戏(javaScript实现网页版的弹球游戏)
- js实现div(javascript拖曳互换div的位置实现示例)
- yii2对比springboot(Yii框架响应组件用法实例分析)
- php 与asp对比(asp.net和php的区别点总结)
- sql备份库怎么恢复(SQL恢复master数据库方法 只有mdf文件的数据库如何恢复)
- docker常用命令详解(docker常用命令总结推荐)
- 阿里云到期ecs迁移至本地(阿里云ecs 硬盘在线扩容详细教程)
- vuejs组件使用教程交流(Vue vee-validate插件的简单使用)