用html5绘制折线图的实例代码

所属分类: 网页制作 / html5 阅读数: 228
收藏 0 赞 0 分享
XML/HTML Code复制内容到剪贴板
  1. <html>    
  2. <canvas id="a_canvas" width="1000" height="700"></canvas>    
  3. <script>    
  4.          
  5.                (function (){    
  6.      
  7.         window.addEventListener("load", function(){    
  8.      
  9.           var data = [100,-1000,0,700];    
  10.      
  11.           // 获取上下文    
  12.           var a_canvas = document.getElementById('a_canvas');    
  13.           var context = a_canvas.getContext("2d");    
  14.      
  15.      
  16.           // 绘制背景    
  17.           var gradient = context.createLinearGradient(0,0,0,300);    
  18.      
  19.      
  20.          // gradient.addColorStop(0,"#e0e0e0");    
  21.           //gradient.addColorStop(1,"#ffffff");    
  22.      
  23.      
  24.           context.fillStyle = gradient;    
  25.      
  26.           context.fillRect(0,0,a_canvas.width,a_canvas.height);    
  27.      
  28.               
  29.           // 描绘边框    
  30.           var grid_cols = data.length + 1;    
  31.           var grid_rows = 4;    
  32.           var cell_height = a_canvas.height / grid_rows;    
  33.           var cell_width = a_canvas.width / grid_cols;    
  34.           context.lineWidth = 1;    
  35.           context.strokeStyle = "#a0a0a0";    
  36.      
  37.           // 结束边框描绘    
  38.           context.beginPath();    
  39.           // 准备画横线    
  40.          /*for (var col = 0; col <= grid_cols; col++) {    
  41.             var x = col * cell_width;    
  42.             context.moveTo(x,0);    
  43.             context.lineTo(x,a_canvas.height);    
  44.           }    
  45.           // 准备画竖线    
  46.           for(var row = 0; row <= grid_rows; row++){    
  47.             var y = row * cell_height;    
  48.             context.moveTo(0,y);    
  49.             context.lineTo(a_canvas.width, y);    
  50.           }*/    
  51.             //划横线    
  52.             context.moveTo(0,a_canvas.height/2);    
  53.             context.lineTo(a_canvas.width,a_canvas.height/2);    
  54.                  
  55.             //画竖线    
  56.           context.moveTo(0,0);    
  57.             context.lineTo(0,a_canvas.height);    
  58.              
  59.              
  60.           context.lineWidth = 1;    
  61.           context.strokeStyle = "#c0c0c0";    
  62.           context.stroke();    
  63.      
  64.           var max_v =0;    
  65.               
  66.           for(var i = 0; i<data.length; i++){    
  67.               var d=0;    
  68.               if(data[i]<0)    
  69.               {dd=d-data[i];    
  70.                   }    
  71.                   else{d=data[i];};    
  72.             if (d > max_v) { max_v =d};    
  73.           }    
  74.           max_vmax_v = max_v * 1.1;    
  75.           // 将数据换算为坐标    
  76.           var points = [];    
  77.           for( var i=0; i < data.length; i++){    
  78.             var vdata[i];    
  79.             var px = cell_width * (i +1);    
  80.             var py = a_canvas.height/2 - a_canvas.height*(v / max_v)/2;    
  81.             points.push({"x":px,"y":py});    
  82.           }    
  83.           // 绘制折现    
  84.           context.beginPath();    
  85.           context.moveTo(points[0].x, points[0].y);    
  86.           for(var i1; i< points.length; i++){    
  87.             context.lineTo(points[i].x,points[i].y);    
  88.           }    
  89.      
  90.      
  91.           context.lineWidth = 2;    
  92.           context.strokeStyle = "#8BA9FF";    
  93.           context.stroke();    
  94.      
  95.           //绘制坐标图形    
  96.           for(var i in points){    
  97.             var p = points[i];    
  98.             context.beginPath();    
  99.             context.arc(p.x,p.y,4,0,2*Math.PI);    
  100.             //实心圆    
  101.            /*    
  102.             context.fillStyle = "#000";*/    
  103.             //空心圆    
  104.             context.strokeStyle = "#000";    
  105.             context.stroke();    
  106.             context.fillStyle="white";    
  107.             context.fill();    
  108.           }    
  109.           //添加文字    
  110.           for(var i in points)    
  111.           {  var p = points[i];    
  112.             context.beginPath();    
  113.             context.fillStyle="black";    
  114.             context.fillText(data[i], p.x + 1, p.y - 15);    
  115.                    
  116.               }    
  117.         },false);    
  118.       })();    
  119.      
  120.            
  121. </script>    
  122. </html>  

运行结果如下:

以上这篇用html5绘制折线图的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

原文地址:http://www.cnblogs.com/shuniuniu/archive/2016/03/25/5318717.html

更多精彩内容其他人还在看

X/HTML5 和 XHTML2

在了解了XHTML 2的进展之后,我们再来看看X/HTML 5 的进展。 X/HTML 5酷在什么地方 章节元素的构想 X/HTML 5引入新的元素用于把Web页面分成若干章节。这些组成部分有助于搜索引擎和辅助工具更好地理解页面内容。使用这些新元素可以使标签更
收藏 0 赞 0 分享

HTML5 与 XHTML2

多数人使用 HTML 4 和 XHTML 1 编写网页。相对较少的 HTML 狂热者了解语义 HTML 的概念、验证 HTML 结构和改进文档的可访问性。高质量的 HTML 文档是反复权衡、设计优选和讨论酝酿的结果。尽管受到诸多批评,还没有任何语言的普及性能与 HTML 比肩。多
收藏 0 赞 0 分享

HTML5 语义化结构化规范化

HTML结构更加清晰、规范,学习HTML5优化结构的思路。 HTML5添加了一些新元素,用来标识常用的结构,是html更具语义化,可是我们无法直接使用,即使可能用到还要等他个十年八年的。 那就像微格式一样,使用class代替,或者随意点,使用id和class名来代替,让自己的结构
收藏 0 赞 0 分享

HTML5的结构和语义(5):交互

http://www.webjx.com/html_xhtml/20080306/html_xhtml_4688.html   HTML 5 也被称为 Web Applications 1.0。为了实现这个目标,增加了几个为 Web 页面提供交互体验的新元素:   
收藏 0 赞 0 分享

HTML5 WebGL 实现民航客机飞行监控系统

这篇文章主要介绍了HTML5 WebGL 的民航客机飞行监控系统,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Canvas+Vue的弹幕组件的实现

这篇文章主要介绍了基于Canvas+Vue的弹幕组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

html通过canvas转成base64的方法

这篇文章主要介绍了html通过canvas转成base64的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

解决H5的a标签的download属性下载service上的文件出现跨域问题

这篇文章主要介绍了解决H5的a标签的download属性下载service上的文件出现跨域问题的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Html5新增标签与样式及让元素水平垂直居中

这篇文章主要介绍了Html5新增标签与样式及让元素水平垂直居中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

canvas实现有递增动画的环形进度条的实现方法

这篇文章主要介绍了canvas实现有递增动画的环形进度条的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享
查看更多