利用 html5 canvas 简单绘制折线图
2015-04-29 17:05
726 查看
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>画图</title> <style> #divContainer{ margin-top: 20px; text-align: center; } #cv{ width: 300px; height: 200px; border-bottom: 2px solid #000; border-left: 2px solid #000; } </style> </head> <body> <div id="divContainer"> 铝锭价走势图<br/> <canvas id="cv">你的设备不支持图表数据显示</canvas> </div> <script> (function(){ window.onload = function(){ //数据源 var dict = [ {x: "2015-04-24", y: 13400}, {x: "2015-04-25", y: 13380}, {x: "2015-04-26", y: 13370}, {x: "2015-04-27", y: 13370}, {x: "2015-04-28", y: 13380} ] //数据源提取 var len = dict.length; var xArr = [], yArr = [], tmp_yArr = []; for(var i=0; i<len; i++){ xArr.push(i * 60); tmp_yArr.push(dict[i].y); } var tmp_minY = Math.min.apply(Math, tmp_yArr);//最小值 var tmp_maxY = Math.max.apply(Math, tmp_yArr);//最大值 if(tmp_maxY - tmp_minY <= 100){ for(var i=0; i<len; i++){ yArr.push(tmp_yArr[i] - tmp_minY + 50);//与最小的做比较 } } else{//如果相差太大会导致图表不美观 for(var i=0; i<len; i++){ yArr.push(tmp_yArr[i] / 500); } } var minY = Math.min.apply(Math, yArr); var maxY = Math.max.apply(Math, yArr); //canvas 准备 var canvas = document.getElementById("cv");//获取canvas画布 var ctx = canvas.getContext("2d"); //画折线 for(var i=0 ;i<len; i++){ var x = xArr[i]; var y = maxY - yArr[i] + minY; if(i === 0){ ctx .moveTo(x, y); } else{ ctx .lineTo(x, y); } } ctx .stroke(); //画点 for(var i=0; i<len; i++){ var x = xArr[i]; var y = maxY - yArr[i] + minY; var xMemo = dict[i].x; var yMemo = "¥" + dict[i].y; ctx.beginPath(); ctx.fillStyle = "#000"; ctx.arc(x, y, 2, 0, 2*Math.PI);//画点 ctx.fill(); ctx.fillText(yMemo, x + 3, y - 10); ctx.fillText(xMemo, x + 3, canvas.height - 10, 40);//画文字 } } })(); </script> </body> </html>
相关文章推荐
- html5 canvas 实现简单绘制折线图
- html5学习笔记二:利用canvas绘制简单图形
- HTML5画布Canvas线段、矩形、弧形及贝塞尔曲线等简单图形绘制
- html5之canvas绘制图形的简单使用
- html5 利用canvas实现简单的人物走动
- 使用html5 canvas绘制简单图形小作品~灰太狼
- 利用HTML5的canvas标签实现灰太狼图像的绘制
- HTML5 canvas 绘制简单logo
- HTML5利用canvas绘制太极图案
- 怎样将html5中利用canvas绘制的图像在服务端保存为图片?
- 使用HTML5的Canvas绘制曲线的简单方法
- HTML5利用Canvas绘制图形(使用图像、裁剪区域、使用文本。阴影效果和操作像素)
- qml学习--------------利用Canvas绘制简单图形
- HTML5 JS Canvas利用贝塞尔曲线绘制圆角矩形
- 【HTML5】Canvas绘制简单图片教程
- js+html5实现canvas绘制简单矩形的方法
- [HTML5] Canvas绘制简单形状
- HTML5 Canvas简单图形绘制[矩形、圆形、线]
- [Web Chart系列之一(续)]Web端图形绘制SVG,VML, HTML5 Canvas 简单实例
- 利用HTML5中的Canvas绘制一张笑脸的教程