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实现动态改变字体大小代码
Jan 02 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
JavaScript事件委托用法分析
Jan 24 Javascript
jQuery控制Div拖拽效果完整实例分析
Apr 15 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
浅析JS异步加载进度条
May 05 Javascript
BootStrap3中模态对话框的使用
Jan 06 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
JS删除String里某个字符的方法
Jan 06 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
PHP 手机归属地查询 api
2010/02/08 PHP
浅析PHP绘图技术
2013/07/03 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
将python代码和注释分离的方法
2018/04/21 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Pandas的Apply函数具体使用
2020/07/21 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
《值日生》教学反思
2014/02/17 职场文书
激励员工的口号
2014/06/16 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技