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

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

下面我们来简单介绍一下实现这款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例子我们今后会继续讲解。源代码下载>>

基于HTML5 Canvas的线性区域图表教程的更多相关文章

  1. 基于HTML5 Canvas的网页画板实现教程

    HTML5的功能非常强大,尤其是Canvas的应用更加广泛,Canvas画布上面不仅可以绘制任意的图形,而且可以实现多种多样的动画,甚至是一些交互式的应用,比如网页网版.这次我们要来看的就是一款基于H ...

  2. 基于HTML5 Canvas的饼状图表实现教程

    昨天我们分享了一款基于HTML5的线性图表应用,效果非常不错,可以看在线DEMO或者实现教程.今天我们继续来分享一款基于HTML5的网页图表,它也是利用Canvas绘制的,但是和前面不同的是,这款图表 ...

  3. 基于html5 Canvas图表库 : ECharts

    ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值 ...

  4. 18个基于 HTML5 Canvas 开发的图表库

    如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.HTML 5 规范引进了很多新特性,其中之一就是 Canvas ...

  5. 基于HTML5 Canvas实现的图片马赛克模糊特效

    效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素 ...

  6. 基于html5 canvas和js实现的水果忍者网页版

    今天爱编程小编给大家分享一款基于html5 canvas和js实现的水果忍者网页版. <水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版 ...

  7. 基于HTML5 Canvas实现用户交互

    很多人都有这样的疑问,基于HTML5 Canvas实现的元素怎么和用户进行交互?在这里我们用到HT for Web(http://www.hightopo.com/guide/guide/core/b ...

  8. 基于html5 canvas 的客户端异步上传图片的插件,支持客户端压缩图片尺寸

    /** * Created by xx on 15-05-28. * 基于html5 canvas 的客户端异步上传画片的插件 * 在实际应用中,常常要用于上传图片的功能.在现在越来越多的手机weba ...

  9. 基于 HTML5 Canvas 的智能安防 SCADA 巡逻模块

    基于 HTML5 Canvas 的智能安防 SCADA 巡逻模块 前言 最近学习了 HT for Web flow 插件,除了正常的 flow 效果,其中还有两个十分好用的两个接口 getPercen ...

随机推荐

  1. js中widow.open()方法详解

    一. window.open() 支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法: window.open(pageURL,nam ...

  2. MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验【转】

    一.环境Master(主机A):192.168.1.1Slave(主机B) :192.168.1.2  W-VIP(写入)  :192.168.1.3 R-VIP(读取)  :192.168.1.4  ...

  3. Cocos2dx 多线程

    多-threaded负荷plist特征.获取知识的必要性: 1.多线程开启:pthread 2.怎样在线程中载入plist 一.多线程开启 当我们想在程序中开多线程中.第一想到的是cocos2d-x有 ...

  4. Embedded tomcat 7 servlet 3.0 annotations not working--转

    Question: I have a stripped down test project which contains a Servlet version 3.0, declared with an ...

  5. ListView 水平滑动 水平和竖直滑动

    效果 Activity public class MainActivity extends Activity {     @Override     protected void onCreate(B ...

  6. TODO、FIXME和XXX转载

    代码中特殊的注释技术——TODO.FIXME和XXX的用处 // TODO Auto-generated method stub

  7. mongodb地理空间计算逻辑

    "1/地球半径"是怎么得出的 参考文档如下: http://janmatuschek.de/LatitudeLongitudeBoundingCoordinates http:// ...

  8. memcache和activemq使用连接,然后close

    memcache和activemq使用连接,然后close

  9. 返回List的分页方法

    cs代码  /// <summary>         /// 处理分页检索存储过程(SQL2005)         /// </summary>         /// & ...

  10. [linux常用命令]查看当前文件夹或该文件夹下文件(夹)的大小

    du -sh  *(星号表示当前所有文件夹)可以查看当前目录下各个文件夹的大小,-s表示只显示当前文件夹(不加-s你可以看到所有文件夹下的子文件夹的大小,太多了),-h表示以合适的大小查看.(可以用- ...