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 相关文章推荐
如何在Web页面上直接打开、编辑、创建Office文档
Mar 12 Javascript
JavaScript实现控制打开文件另存为对话框的方法
Apr 17 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
Oct 29 Javascript
js如何准确获取当前页面url网址信息
Sep 13 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
jQuery中的一些常见方法小结(推荐)
Jun 13 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
JS中常用的正则表达式
Sep 29 Javascript
使用JavaScript根据图片获取条形码的方法
Jul 04 Javascript
详解JavaScript数据类型和判断方法
Sep 04 Javascript
如何使用JS console.log()技巧提高工作效率
Oct 14 Javascript
关于Vue Router的10条高级技巧总结
May 06 Vue.js
一行代码实现纯数据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抽象类 介绍
2012/06/13 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php mysql 封装类实例代码
2016/09/18 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
python提示No module named images的解决方法
2014/09/29 Python
Python出现segfault错误解决方法
2016/04/16 Python
Python中整数的缓存机制讲解
2019/02/16 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
Python实现SMTP邮件发送
2020/06/16 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
员工拾金不昧表扬稿
2015/05/05 职场文书