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


本文摘自PHP中文网,作者不言,侵删。

这篇文章主要介绍了关于用html5绘制折线图的实例代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

XML/HTML Code复制内容到剪贴板

  1. 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    <html>

    <canvas id="a_canvas" width="1000" height="700"></canvas>

    <script>

                   (function (){   

            window.addEventListener("load", function(){   

              var data = [100,-1000,0,700];   

              // 获取上下文   

              var a_canvas = document.getElementById('a_canvas');   

              var context = a_canvas.getContext("2d");   

              // 绘制背景   

              var gradient = context.createLinearGradient(0,0,0,300);   

             // gradient.addColorStop(0,"#e0e0e0");   

              //gradient.addColorStop(1,"#ffffff");   

              context.fillStyle = gradient;   

              context.fillRect(0,0,a_canvas.width,a_canvas.height);   

              // 描绘边框   

              var grid_cols = data.length + 1;   

              var grid_rows = 4;   

              var cell_height = a_canvas.height / grid_rows;   

              var cell_width = a_canvas.width / grid_cols;   

              context.lineWidth = 1;   

              context.strokeStyle = "#a0a0a0";   

              // 结束边框描绘   

              context.beginPath();   

              // 准备画横线   

             /*for (var col = 0; col <= grid_cols; col++) {   

                var x = col * cell_width;   

                context.moveTo(x,0);   

                context.lineTo(x,a_canvas.height);   

              }   

              // 准备画竖线   

              for(var row = 0; row <= grid_rows; row++){   

                var y = row * cell_height;   

                context.moveTo(0,y);   

                context.lineTo(a_canvas.width, y);   

              }*/   

                //划横线   

                context.moveTo(0,a_canvas.height/2);   

                context.lineTo(a_canvas.width,a_canvas.height/2);   

                //画竖线   

              context.moveTo(0,0);   

                context.lineTo(0,a_canvas.height);   

              context.lineWidth = 1;   

              context.strokeStyle = "#c0c0c0";   

              context.stroke();   

              var max_v =0;   

              for(var i = 0; i<data.length; i++){   

                  var d=0;   

                  if(data[i]<0)   

                  {dd=d-data[i];   

                      }   

                      else{d=data[i];};   

                if (d > max_v) { max_v =d};   

              }   

              max_vmax_v = max_v * 1.1;   

              // 将数据换算为坐标   

              var points = [];   

              for( var i=0; i < data.length; i++){   

                var v= data[i];   

                var px = cell_width * (i +1);   

                var py = a_canvas.height/2 - a_canvas.height*(v / max_v)/2;   

                points.push({"x":px,"y":py});   

              }   

              // 绘制折现   

              context.beginPath();   

              context.moveTo(points[0].x, points[0].y);   

              for(var i= 1; i< points.length; i++){   

                context.lineTo(points[i].x,points[i].y);   

              }   

              context.lineWidth = 2;   

              context.strokeStyle = "#8BA9FF";   

              context.stroke();   

              //绘制坐标图形   

              for(var i in points){   

                var p = points[i];   

                context.beginPath();   

                context.arc(p.x,p.y,4,0,2*Math.PI);   

                //实心圆   

               /*   

                context.fillStyle = "#000";*/   

                //空心圆   

                context.strokeStyle = "#000";   

                context.stroke();   

                context.fillStyle="white";   

                context.fill();   

              }   

              //添加文字   

              for(var i in points)   

              {  var p = points[i];   

                context.beginPath();   

                context.fillStyle="black";   

                context.fillText(data[i], p.x + 1, p.y - 15);   

                  }   

            },false);   

          })();   

    </script>

    </html>

运行结果如下:

相关推荐:

基于html5绘制圆形多角图案_html5教程技巧

以上就是用html5绘制折线图的实例代码的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

详解h5的自定义属性data-*

怎样用h5的sse服务器发送eventsource事件

分享HTML5中10个经典的动画工具

利用HTML5 实现3d 网络拓扑树(图文详解)

HTML5本地存储之webstorage介绍

HTML5和app的区别是什么

HTML5和css3扁平化风格博客教程的资源分享

css中文字相关属性的介绍

使用HTML5实现树叶飘落的效果

canvas实现动态粒子连线效果(附代码)

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...