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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
Apr 08 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
js函数模拟显示桌面.scf程序示例
Apr 20 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
React-router v4 路由配置方法小结
Aug 08 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
angular6的响应式表单的实现
Oct 10 Javascript
js实现百度淘宝搜索功能
Feb 17 Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
Dec 03 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
yii添删改查实例
2015/11/16 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
常用一些Javascript判断函数
2012/08/14 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
python实现自动发送邮件
2018/06/20 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
网管求职信
2014/03/03 职场文书
校园安全演讲稿
2014/05/09 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
三八节祝酒词
2015/08/11 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python