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 存在陷阱 删除某一区域所有节点
May 10 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
Javascript实现计算个人所得税
May 10 Javascript
剖析Node.js异步编程中的回调与代码设计模式
Feb 16 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
vue项目中使用Svg的方法
Oct 24 Javascript
深入理解js A*寻路算法原理与具体实现过程
Dec 13 Javascript
解决vue打包后刷新页面报错:Unexpected token
Aug 27 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
JavaScript实现HSL拾色器
May 21 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
js对象的比较
2011/02/26 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
django如何自己创建一个中间件
2019/07/24 Python
使用python实现kNN分类算法
2019/10/16 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
应届生污水处理求职信
2013/11/06 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
《山中访友》教学反思
2016/02/24 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python