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 相关文章推荐
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
JavaScript原型链示例分享
Jan 26 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
Sep 01 Javascript
每天一篇javascript学习小结(Function对象)
Nov 16 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
基于jquery实现百度新闻导航菜单滑动动画
Mar 15 Javascript
每日十条JavaScript经验技巧(一)
Jun 23 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 Javascript
Vue底层实现原理总结
Feb 17 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
May 14 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
Sep 25 Javascript
jQuery实现计算器功能
Oct 19 jQuery
一行代码实现纯数据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
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
React组件生命周期详解
2017/07/03 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
JavaScript函数定义方法实例详解
2019/03/05 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
Python使用gRPC传输协议教程
2018/10/16 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
Python 移动光标位置的方法
2019/01/20 Python
Python中的类与类型示例详解
2019/07/10 Python
Django多数据库的实现过程详解
2019/08/01 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
Python绘制数码晶体管日期
2021/02/19 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
高中教师考核方案
2014/05/18 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
2015年重阳节主持词
2015/07/04 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
入党心得体会
2019/06/20 职场文书
python标准库ElementTree处理xml
2022/05/20 Python