码迷,mamicode.com
首页 > Web开发 > 详细

【ExtJs】饼状图

时间:2015-05-03 13:26:49      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:extjs   ie6   extjs4   图表   饼状图   

ExtJs饼状图没有《【ExtJs】柱状图,改变每条柱子的颜色》(点击打开链接)这么难做,因为其每块拼饼的颜色都是天生不同的,不用自己写渲染器。关键是做好动画效果。


一、基本目标

比如如下图的带动画的ExtJs饼状图效果。鼠标悬停到某块拼饼上面,会突出出来。

技术分享


二、制作过程

还是与《【ExtJs】柱状图,改变每条柱子的颜色》(点击打开链接)、《【ExtJs】折线图》(点击打开链接)一样,在ExtJs4中的任意图表都要先定义对应的模型与数据中心。

	 	Ext.define('graphData',{
			extend:'Ext.data.Model',
			fields:[
				{name:'graphName',type:'string'},
				{name:'graphData',type:'int'}
			]
		});
		var graphDataStore=Ext.create('Ext.data.Store',{
			model:'graphData',
			data:[
				{graphName:"A",graphData:700},
				{graphName:"B",graphData:800},
				{graphName:"C",graphData:600},
				{graphName:"D",graphData:50}	
			]
		});
之后,关键是柱状图的绘制,详情见注释:

		var chart = new Ext.chart.Chart({
			width: 480,
			height: 400,
			store: graphDataStore,
			renderTo: Ext.getBody(),
			shadow: false,//一定会关闭阴影,否则拼饼突出的时候很不好看。
			series: [{
				type: 'pie',
				field: 'graphData',
				label: {//这里能够使拼饼上面显示,该拼饼属于的部分
					field: 'graphName',
					display: 'rotate',
					font: '18px "Arial"'
				},
    			highlight: {//这里是突出效果的声明,margin越大,鼠标悬停在拼饼上面,拼饼突出得越多
              		segment: {
                		margin: 5
              		}
            	},
				animate: true
			}]
		});

三、总结

因此,整个pie.html的代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>饼状图</title>
        <script type="text/javascript" src="../js/ext-all.js"></script>
        <script type="text/javascript" src="../js/bootstrap.js"></script>
        <script type="text/javascript" src="../js/ext-lang-zh_CN.js"></script>
        <link href="../ext-theme-classic/ext-theme-classic-all.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    </body>
</html>
<script>
    Ext.onReady(function(){
	 	Ext.define('graphData',{
			extend:'Ext.data.Model',
			fields:[
				{name:'graphName',type:'string'},
				{name:'graphData',type:'int'}
			]
		});
		var graphDataStore=Ext.create('Ext.data.Store',{
			model:'graphData',
			data:[
				{graphName:"A",graphData:700},
				{graphName:"B",graphData:800},
				{graphName:"C",graphData:600},
				{graphName:"D",graphData:50}	
			]
		});
		var chart = new Ext.chart.Chart({
			width: 480,
			height: 400,
			store: graphDataStore,
			renderTo: Ext.getBody(),
			shadow: false,//一定会关闭阴影,否则拼饼突出的时候很不好看。
			series: [{
				type: 'pie',
				field: 'graphData',
				label: {//这里能够使拼饼上面显示,该拼饼属于的部分
					field: 'graphName',
					display: 'rotate',
					font: '18px "Arial"'
				},
    			highlight: {//这里是突出效果的声明,margin越大,鼠标悬停在拼饼上面,拼饼突出得越多
              		segment: {
                		margin: 5
              		}
            	},
				animate: true
			}]
		});
	});
</script>


【ExtJs】饼状图

标签:extjs   ie6   extjs4   图表   饼状图   

原文地址:http://blog.csdn.net/yongh701/article/details/45457841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!