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 相关文章推荐
强制设为首页代码
Jun 19 Javascript
javascript 类方法定义还是有点区别
Apr 15 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
JS+Canvas 实现下雨下雪效果
May 18 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
Javascript基础回顾之(一) 类型
Jan 31 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
vue-router实现编程式导航的代码实例
Jan 19 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 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提交后跳转
2013/06/23 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python中Collection的使用小技巧
2014/08/18 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
学校党员干部承诺书
2015/05/04 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
Python循环之while无限迭代
2022/04/30 Python
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL