HTML5中canvas画图之绘制数据图表
来源:互联网 发布:汽车互联软件 编辑:程序博客网 时间:2024/06/05 04:26
上一篇博文绘制了一个方格图,现在来绘制一个数据图表。实现的效果如下:
实现代码如下:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>数据图表</title></head><body><canvas id="canvas" width="300" height="300"></canvas><script type="text/javascript">//定义图表数据var uriage=[80,92,101,110,68,50,45,90,74,68,98,103];drawChart(uriage);//绘制折线数据图表的函数function drawChart(data){//获取上下文var canvas=document.getElementById("canvas");var ctx=canvas.getContext("2d");//描绘背景var gradient=ctx.createLinearGradient(0,0,0,300);gradient.addColorStop(0,"#e0e0e0");gradient.addColorStop(1,"#ffffff");ctx.fillStyle=gradient;ctx.fillRect(0,0,canvas.width,canvas.height);//计算坐标var grid_cols=data.length+1;var grid_rows=4;var cell_width=canvas.width/grid_cols;var cell_height=canvas.height/grid_rows;//绘制背景的方格线ctx.beginPath();for(var row=0;row<=grid_rows;row++){var y=row*cell_height;ctx.moveTo(0,y);ctx.lineTo(canvas.width,y);}for(var col=0;col<grid_cols;col++){var x=col*cell_width;ctx.moveTo(x,0);ctx.lineTo(x,canvas.height);}ctx.lineWidth=1;ctx.strokeStyle="#c0c0c0";ctx.stroke();//获取数据中最大值var max_v=0;for(var i=0;i<data.length;i++){if(data[i]>max_v)max_v=data[i];}//为了能让最大值能容纳在图表内,计算坐标max_v=max_v*1.1;//将数据转换为坐标var points=[];for(var i=0;i<data.length;i++){var v=data[i];var px=cell_width*(1+i);var py=canvas.height-canvas.height*(v/max_v);points.push({"x":px,"y":py});}//描绘折线ctx.beginPath();ctx.moveTo(points[0].x,points[0].y);for(var i=1;i<points.length;i++){ctx.lineTo(points[i].x,points[i].y); }ctx.lineWidth=2;ctx.strokeStyle="#ee0000";ctx.stroke();//绘制坐标图形(坐标对于一红色圈圈)for(var i in points){var p=points[i];ctx.beginPath();ctx.arc(p.x,p.y,6,0,2*Math.PI);ctx.fillStyle="#ee0000";ctx.fill(); }}</script></body></html>
0 0
- HTML5中canvas画图之绘制数据图表
- HTML5中canvas画图之绘制路径
- HTML5中canvas画图之绘制方格图
- HTML5中canvas画图之画圆形
- HTML5 Canvas实现web画图之自由绘制矩形
- canvas 绘制大乐透数据图表
- html5之canvas绘制
- HTML5中canvas画图之根据触摸点画三角形
- HTML5中canvas画图之画矩形和矩形掏空
- html5之Canvas绘制刮刮卡
- HTML5之canvas绘制图片
- html5中canvas绘制矩形
- html5中canvas绘制圆形
- html5中canvas绘制线段
- HTML5中Canvas画图片的问题
- html5中canvas标签画图方法。
- HTML5中Canvas与SVG的画图
- html5<canvas>画图
- Struts2基础知识
- 网络爬虫-用python获取豆瓣新书推荐信息
- 测试
- php include()引用文件无效,Notice: Undefined variable:
- 回复面试官之应对什么字段进行索引
- HTML5中canvas画图之绘制数据图表
- c++语言学习
- 最新的安卓面试知识(java、安卓)
- java GUI
- Django安装
- pixhawk添加一个新的MAVLink 消息
- 备份压缩命令 - tar
- Linux下递归遍历指定目录下的文件内容并删除的函数实现
- LeetCode-11.Container With Most Water