javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图


Posted in Javascript onJanuary 09, 2013

gRaphael 是一个致力于帮助开发人员在网页中绘制各种精美图表的 Javascript 库,基于强大的 Raphael 矢量图形库。你只需要编写几行简单的代码就能创建出精美的条形图、饼图、点图和曲线图。

gRaphael 使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,是跨浏览器的矢量图形库,目前支持的浏览器包括: Firefox 3.0+,Safari 3.0+,Chrome 5.0+,Opera 9.5+ 以及 Internet Explorer 6.0+。

javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图

使用方法:在页面中引入 raphael.js,g.raphael.js 文件,并根据需要引入 g.line.js(曲线图),g.bar.js(条形图),g.dot.js(点图)和 g.pie.js(饼图)文件,然后根据提供的方法即可创建出你想要的精美图表,下面是两个简单示例。

创建静态饼图

只需要两行代码即可,示例代码:

// 在坐标(10,50)创建 600 × 450 的画布 
var r = Raphael(10, 50, 600, 450); 
// 创建中心坐标为(320, 200)的饼图,半径为150,数据为 [55, 20, 13, 32, 5, 1, 2, 10]的饼图 
r.piechart(320, 240, 150, [55, 20, 13, 32, 5, 1, 2, 10]);

效果演示及完整源码下载

javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图

源码下载

创建交互饼图
结合 hover 和 click 事件以及动画方法,你就可以创建精美的交互式饼图,示例代码:

// 在坐标(10,50)创建 640 × 480 的画布 
var r = Raphael(10, 50, 640, 480); 
// 创建中心坐标为(320, 240)的饼图,半径为100,数据为[55, 20, 13, 32, 5, 1, 2, 10]的饼图 
pie = r.piechart(320, 240, 100, [55, 20, 13, 32, 5, 1, 2, 10], { 
legend: ["%%.%% - Enterprise Users", "IE Users"], 
legendpos: "west", 
href: ["http://raphaeljs.com", "http://g.raphaeljs.com"] 
}); 
// 在坐标(320, 100)绘制文字 
r.text(320, 100, "Interactive Pie Chart").attr({ 
font: "20px sans-serif" 
}); 
// 给饼图添加 hover 事件 
pie.hover(function() { 
this.sector.stop(); 
this.sector.scale(1.1, 1.1, this.cx, this.cy); if(this.label) { 
this.label[0].stop(); 
this.label[0].attr({ 
r: 7.5 
}); 
this.label[1].attr({ 
"font-weight": 800 
}); 
} 
}, function() { 
this.sector.animate({ 
transform: 's1 1 ' + this.cx + ' ' + this.cy 
}, 500, "bounce"); 
// 添加动画效果 
if(this.label) { 
this.label[0].animate({ 
r: 5 
}, 500, "bounce"); 
this.label[1].attr({ 
"font-weight": 400 
}); 
} 
});

效果演示及完整源码下载

javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图

源码下载

gRaphael 官方网站地址:http://g.raphaeljs.com/

gRaphael 英文参考文档:http://g.raphaeljs.com/reference.html 

Raphael 官方网站地址:http://raphaeljs.com

Raphael 英文参考文档:http://raphaeljs.com/reference.html

Raphael 中文帮助文档:http://julying.com/lab/raphael-js/docs/

Raphael 新手入门教程:An Introduction to the Raphael JS Library

Javascript 相关文章推荐
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
网页整体变灰白色(兼容各浏览器)实例
Apr 21 Javascript
JavaScript中的闭包(Closure)详细介绍
Dec 30 Javascript
JavaScript实现select添加option
Jul 03 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
JS实现列表的响应式排版(推荐)
Sep 01 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
Bootstrap免费字体和图标网站(值得收藏)
Mar 16 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
Jun 22 Javascript
JS闭包原理与应用经典示例
Dec 20 Javascript
利用 JavaScript 构建命令行应用
Nov 17 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
Jan 09 #Javascript
javascript parseInt() 函数的进制转换注意细节
Jan 08 #Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 #Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 #Javascript
jquery Mobile入门—外部链接切换示例代码
Jan 08 #Javascript
jquery Moblie入门—hello world的示例代码学习
Jan 08 #Javascript
jquery Mobile入门—多页面切换示例学习
Jan 08 #Javascript
You might like
如何把PHP转成EXE文件
2006/10/09 PHP
如何在PHP中使用Oracle数据库(6)
2006/10/09 PHP
PHP的面试题集
2006/11/19 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
理解JS绑定事件
2016/01/19 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
python实现二维码扫码自动登录淘宝
2016/12/27 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
python3.x实现base64加密和解密
2019/03/28 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python列表的切片实例讲解
2019/08/20 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
时尚圣经:The Fashion Bible
2019/03/03 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
基层干部十八大感言
2014/01/19 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
绿色环保倡议书
2015/04/28 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android