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 相关文章推荐
JavaScript 指导方针
Apr 05 Javascript
javascript天然的迭代器
Oct 29 Javascript
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
5种处理js跨域问题方法汇总
Dec 04 Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
浅谈JQ中mouseover和mouseenter的区别
Sep 13 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
vue.draggable实现表格拖拽排序效果
Dec 01 Javascript
细说webpack6 Babel的使用详解
Sep 26 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读写文件的方法(生成HTML)
2006/11/27 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
PHP调用其他文件中的类
2018/04/02 PHP
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
Python help()函数用法详解
2014/03/11 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
python分布式编程实现过程解析
2019/11/08 Python
python已协程方式处理任务实现过程
2019/12/27 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
出国导师推荐信
2014/01/16 职场文书
汽车维修求职信
2014/06/15 职场文书
2014年团支部工作总结
2014/11/17 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
个人年终总结开头
2015/03/06 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
作弊检讨书范文
2015/05/06 职场文书
浅析Django接口版本控制
2021/06/26 Python