zoukankan      html  css  js  c++  java
  • 基于HTML5 Canvas的线性区域图表教程

    之前我们看到过很多用jQuery实现的网页图表,有些还是比较实用的。今天我们来介绍一款基于HTML5 Canvas的线性区域图表应用,这个图表应用允许你使用多组数据来同时展示,并且将数据结果以线性图的形式展现,各个数据之间形成的区域用不同的颜色表示,具体可以看下面的DEMO演示。

    html5-chart-rgraph

    你也可以在这里查看在线演示

    下面我们来简单介绍一下实现这款HTML5图表的过程以及源代码。

    HTML代码:

    <canvas id="cvs" width="600" height="250">[No canvas support]</canvas>

    简单的一个canvas标签,我们的图表就是在canvas上绘制而成的。

    由于这款图表是基于RGraph的,所以我们还要引用RGraph的相关js脚本以及jquery类库:

    <script src="../libraries/RGraph.common.core.js" ></script>
    <script src="../libraries/RGraph.common.effects.js" ></script>
    <script src="../libraries/RGraph.common.dynamic.js" ></script>
    <script src="../libraries/RGraph.common.tooltips.js" ></script>
    <script src="../libraries/RGraph.drawing.poly.js" ></script>
    <script src="../libraries/RGraph.line.js" ></script>
    <script src="../libraries/jquery.min.js" ></script>

    最后是Javascript代码:

    var d1  = [];
                var d2  = [];
                var val = 47;
                
                // Create the data
                for (var i=0; i<100; i+=1) d1[i] = RGraph.random(45,55);
                for (var i=0; i<100; i+=1) d2[i] = RGraph.random(25,35);
    
            
                var line = new RGraph.Line('cvs', d1, d2)
                    .Set('background.grid.autofit.numhlines', 10)
                    .Set('hmargin', 10)
                    .Set('filled', true)
                    .Set('fillstyle', 'red')
                    .Set('filled.range', true)
                    .Set('filled.range.threshold',40)
                    .Set('filled.range.threshold.colors', ['rgba(255,0,0,0.5)', 'rgba(0,0,255,0.5)'])
                    .Set('labels',['Q1','Q2','Q3','Q4'])
                    .Set('colors', ['gray', 'gray'])
                    .Set('numxticks', 8)
                    .Set('linewidth', 1)
                    .Set('ymax', 60)
                RGraph.Effects.Line.jQuery.Trace(line);
                
                var coords = []
                for (var i=0; i<(line.coords.length/2); i+=1) {
                    coords.push(line.coords[i])
                }
                for (var i=(line.coords.length - 1); i>=(line.coords.length/2); i-=1) {
                    coords.push(line.coords[i])
                }
    
                var poly = new RGraph.Drawing.Poly('cvs', coords)
                    .Set('fillstyle', 'rgba(0,0,0,0)')
                    .Set('strokestyle', 'rgba(0,0,0,0)')
                    .Set('tooltips', ['The range chart'])
                    .Set('highlight.fill', 'rgba(255,255,255,0.3)')
                    .Draw();

    主要是初始化一些数据,RGraph是一款很不错的HTML5图表框架,更多的RGraph例子我们今后会继续讲解。源代码下载>>

  • 相关阅读:
    UWP取出图片主色调
    UWP上可用的GB2312编码
    嵌入的资源 和 Resource
    WPF 斜角border
    .net core初试 --- 控制台程序
    Python初学手记----在window系统中安装环境
    我的第一个网络爬虫 C#版 福利 程序员专车
    使用FFMpeg命令行录屏推rtmp流
    WPF制作表示透明区域的马赛克画刷
    WPF之坑——surface触控失灵之谜
  • 原文地址:https://www.cnblogs.com/jjet/p/3918458.html
Copyright © 2011-2022 走看看