`
xaajie
  • 浏览: 73240 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Flex多样化饼图样式(颜色渐变,点击分离,环形)

    博客分类:
  • Flex
阅读更多

创建一个简单的环形饼图,通过PieChart的innerRadius属性进行设置实现环形效果:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
       <mx:Script>
        <![CDATA[
      import mx.collections.ArrayCollection;          
      import mx.charts.HitData;
        [Bindable]
        public var chengjiPie:ArrayCollection = new ArrayCollection( [
            { classs: "60分以下", num: 5 },
            { classs: "60~70分", num: 4 },
            { classs: "70~80分", num:5},
            { classs: "80~90分", num: 4},
            { classs: "90分以上", num: 3}]);
            
        private function displayGold(data:Object, field:String, index:Number, percentValue:Number):String {
            var temp:String= (" " + percentValue).substr(0,6);
            return data.classs + ": " +  '\n' + temp + "%";
        }
        
        ]]>
      
    </mx:Script>
 
    <mx:SolidColor id="sc1" color="0xE46899" alpha=".6"/>
    <mx:SolidColor id="sc2" color="0xAAD71A" alpha=".6"/>
    <mx:SolidColor id="sc3" color="0xFFE30E" alpha=".6"/>
    <mx:SolidColor id="sc4" color="0xFDB500" alpha=".6"/>
    <mx:SolidColor id="sc5" color="0x4CD0EF" alpha=".6"/>


    <mx:Stroke id="callouts" weight="2" color="0x999999" alpha=".8" caps="square"/>
    <mx:Stroke id="radial" weight="1" color="0xFFFFCC" alpha=".3"/>
    <mx:Stroke id="pieborder" color="0x000000" weight="2" alpha=".5"/>


    <mx:Panel  height="100%" width="100%" layout="absolute" fontSize="12">
      
      <mx:PieChart id="chart"  showDataTips="true" width="100%" height="100%"
                 dataProvider="{chengjiPie}" innerRadius=".3" horizontalCenter="0" verticalCenter="0">

                <mx:series>
                    <mx:Array>
                        <mx:PieSeries nameField="classs" labelPosition="callout"  field="num" 
                                      labelFunction="displayGold" >
                         
	                    </mx:PieSeries>
                    </mx:Array>
                </mx:series>

            </mx:PieChart> 
        <mx:Legend dataProvider="{chart}" right="0" bottom="0"/>
    </mx:Panel>

</mx:Application>

 

 在这个简单饼图的基础上进行一些改动:

1 添加饼图上颜色块的渐变效果,用到RadialGradient标签.

2 实现鼠标点击,该块分离的效果,对PieSeries进行相关属性设置,explodeRadius:分离程度。PerWedgeExplodeRadius:数组规定出每一块的分离值。

3 添加动态效果,点击时的弹动变化。showDataEffect标签处添加Elastic.easeOut震动效果。

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
       <mx:Script>
        <![CDATA[
      import mx.collections.ArrayCollection;          
      import mx.charts.HitData;
      import mx.effects.easing.*; 
        [Bindable]
        public var chengjiPie:ArrayCollection = new ArrayCollection( [
            { classs: "60分以下", num: 5 },
            { classs: "60~70分", num: 4 },
            { classs: "70~80分", num:5},
            { classs: "80~90分", num: 4},
            { classs: "90分以上", num: 3}]);
            
        private function displayGold(data:Object, field:String, index:Number, percentValue:Number):String {
            var temp:String= (" " + percentValue).substr(0,6);
            return data.classs + ": " +  '\n' + temp + "%";
        }
       	
		private var _selectedRegion:Object;
		
        public function get selectedRegion():Object
        {
            return _selectedRegion;
        }
        
        public function set selectedRegion(item:Object):void
        {
            _selectedRegion = item;

            var index:int = -1;
            for (var i:int=0; i < chengjiPie.length && index == -1; i++)
            {
                if (chengjiPie[i].classs == item.classs)
                    index = i;
            }
           
            var explodeData:Array = [];
            explodeData[index] = 0.15;
            chart.series[0].perWedgeExplodeRadius = explodeData;
        }
        
        private function regionChange(item:Object):void
        {
            selectedRegion = item;
            dispatchEvent(new Event("regionChange"));
        }

       private function formatDataTip(hitData:HitData):String
        {
            var classs:String = hitData.item.classs;
            var num:Number = hitData.item.num;
            return classs;
        }

        ]]>
      
    </mx:Script>
 
    <mx:SolidColor id="sc1" color="0xE46899" alpha=".6"/>
    <mx:SolidColor id="sc2" color="0xAAD71A" alpha=".6"/>
    <mx:SolidColor id="sc3" color="0xFFE30E" alpha=".6"/>
    <mx:SolidColor id="sc4" color="0xFDB500" alpha=".6"/>
    <mx:SolidColor id="sc5" color="0x4CD0EF" alpha=".6"/>


    <mx:Stroke id="callouts" weight="2" color="0x999999" alpha=".8" caps="square"/>
    <mx:Stroke id="radial" weight="1" color="0xFFFFCC" alpha=".3"/>
    <mx:Stroke id="pieborder" color="0x000000" weight="2" alpha=".5"/>


    <mx:Panel  height="100%" width="100%" layout="absolute" fontSize="12">
      
      <mx:PieChart id="chart"  showDataTips="true" width="100%" height="100%"
                itemClick="regionChange(event.hitData.item)"  dataProvider="{chengjiPie}"  horizontalCenter="0" verticalCenter="0">

                <mx:series>
                    <mx:Array>
                        <mx:PieSeries nameField="classs" labelPosition="callout"  field="num" 
                                      labelFunction="displayGold" >
                              <mx:showDataEffect> 
                               <mx:SeriesInterpolate duration="1500" easingFunction="{Elastic.easeOut}" /> 
                              </mx:showDataEffect> 

                         <mx:fills>
	                        <mx:Array>
	                            <mx:RadialGradient>
	                                <mx:entries>
	                                    <mx:Array>
	                                        <mx:GradientEntry color="#EF7651" ratio="0"/>
	                                        <mx:GradientEntry color="#994C34" ratio="1"/>
	                                    </mx:Array>
	                                </mx:entries>
	                            </mx:RadialGradient>
	                            <mx:RadialGradient>
	                                <mx:entries>
	                                    <mx:Array>
	                                        <mx:GradientEntry color="#E9C836" ratio="0"/>
	                                        <mx:GradientEntry color="#AA9127" ratio="1"/>
	                                    </mx:Array>
	                                </mx:entries>
	                            </mx:RadialGradient>
	                            <mx:RadialGradient>
	                                <mx:entries>
	                                    <mx:Array>
	                                        <mx:GradientEntry color="#6FB35F" ratio="0"/>
	                                        <mx:GradientEntry color="#497B54" ratio="1"/>
	                                    </mx:Array>
	                                </mx:entries>
	                            </mx:RadialGradient>
	                            <mx:RadialGradient>
	                                <mx:entries>
	                                    <mx:Array>
	                                        <mx:GradientEntry color="#A1AECF" ratio="0"/>
	                                        <mx:GradientEntry color="#47447A" ratio="1"/>
	                                    </mx:Array>
	                                </mx:entries>
	                            </mx:RadialGradient>
	                            <mx:RadialGradient>
	                                <mx:entries>
	                                    <mx:Array>
	                                        <mx:GradientEntry color="#BA9886" ratio="0"/>
	                                        <mx:GradientEntry color="#AE775B" ratio="1"/>
	                                    </mx:Array>
	                                </mx:entries>
	                            </mx:RadialGradient>
	                        </mx:Array>
	                    </mx:fills>
	                    </mx:PieSeries>
                    </mx:Array>
                </mx:series>

            </mx:PieChart> 
        <mx:Legend dataProvider="{chart}" right="0" bottom="0"/>
    </mx:Panel>

</mx:Application>

 

 除此之外,http://demo.quietlyscheming.com/variablePieCharts/SizedPieCharts.html上通过继承对ChartPie组件的相关属性进行重新定义,使得每个扇形的半径根据数据的大小进行变化。实现如下效果:

 
 

  • swf.rar (1.1 MB)
  • 下载次数: 868
  • 大小: 78.5 KB
  • 大小: 63.5 KB
  • 大小: 62.1 KB
18
0
分享到:
评论
5 楼 z390174504 2013-06-27  
学习了。。。
4 楼 mumuqingwei 2013-06-04  
感谢分享,很炫的效果
3 楼 bcabchappy 2013-01-02  
很好,谢谢你的文章。
2 楼 北一王 2012-07-31  
第三个图有没有源码呀,正在学习。。。
1 楼 指尖帝 2010-11-13  
mark 一下

相关推荐

    cmd-bat-批处理-脚本-IE主页修改.zip

    cmd-bat-批处理-脚本-IE主页修改.zip

    Delphi 12.3控件之uniGUI-Extras-1.95.0.1600.rar

    Delphi 12.3控件之uniGUI-Extras_1.95.0.1600.rar

    【数据库安全】MySQL中SQL注入攻击原理与防御措施:提升Web应用安全性设计在MySQL环境下SQL

    内容概要:本文主要介绍了SQL注入的概念、危害及其防范措施。SQL注入是攻击者通过恶意构造输入,使服务器执行非预期的SQL命令的一种攻击方式,常因用户输入未

    ORON1.SHX

    使用方法:拷贝到Auto CAD的Fonts下

    cmd-bat-批处理-脚本-维护版.zip

    cmd-bat-批处理-脚本-维护版.zip

    esp-idf-extension.vsix zip

    解压

    【数据库管理】MySQL命令大全:涵盖数据库与数据表操作及事务管理的常用指令集

    内容概要:本文档为《mysql.docx》,主要汇总了MySQL的各类常用命令,分为基础命令、数据库相关命令、数据表相关命令和事务相关命令四大部分。基础命令涵盖了连接、创建、删除数据库,创建和删除表,插入、查询、更新、删除数据等基本操作;数据库相关命令则进一步细化了对数据库的管理操作,如修改编码格式、查看数据库详细信息等;数据表相关命令着重介绍了对表结构和数据的操作,包括创建、修改、删除表,添加、删除、修改列,创建和删除索引等;事务相关命令主要涉及事务的开始、提交、回滚,设置事务隔离级别,以及表的锁定与解锁操作。; 适合人群:适用于具有一定SQL基础,尤其是MySQL使用经验的数据库管理员或开发人员。; 使用场景及目标:①帮助用户快速查找并正确使用MySQL的各种命令;②提高用户对MySQL数据库的操作能力,包括但不限于数据库和表的创建、修改、删除,数据的增删改查等;③掌握MySQL事务处理机制,确保数据的一致性和完整性。; 其他说明:本文档是MySQL命令的集合,建议用户在实际操作前先熟悉各个命令的具体用法,并在测试环境中进行练习,避免误操作导致数据丢失或其他严重后果。

    cmd-bat-批处理-脚本-交换两个变量的值而不使用临时变量.zip

    cmd-bat-批处理-脚本-交换两个变量的值而不使用临时变量.zip

    软件工程集成测试全流程解析:确保软件模块协同工作的关键方法与实践

    内容概要:集成测试是确保软件质量的关键环节,它在单元测试基础上验证模块间的交互和协作。文章详细介绍了集成测试的目的、重要性、流程步骤、策略与方法以及常见问题的解决办法。集成测试不仅验证模块接口的正确性,还确保系统的整体功能和性能符合预期。文章通过一个电商系统的实际案例,展示了集成测试在发现和解决问题中的具体应用。最后,展望了集成测试未来的发展趋势,如自动化测试、云计算、大数据和人工智能技术的应用。 适合人群:软件开发人员、测试工程师、项目经理及相关技术人员。 使用场景及目标:①了解集成测试在整个软件开发生命周期中的作用和重要性;②掌握集成测试的详细流程,包括测试计划制定、环境搭建、用例设计、执行与记录、缺陷管理和回归测试、测试总结与报告;③学习集成测试的不同策略(自顶向下、自底向上、混合策略)和方法(黑盒测试、白盒测试、模拟测试),并理解其适用场景;④掌握常见问题(接口不匹配、数据传递错误、性能瓶颈)的解决办法。 其他说明:本文不仅提供了集成测试的理论知识,还结合实际案例进行详细讲解,帮助读者更好地理解和应用集成测试技术。未来集成测试将受益于自动化测试、云计算、大数据和人工智能技术的发展,测试人员应不断学习新技术,优化测试流程,提高软件质量和效率。

    cmd脚本-bat批处理-快速设定分辨率.zip

    cmd脚本-bat批处理-快速设定分辨率.zip

    高阶过采样delta-sigma DAC设计.pdf### 高阶过采样 delta-sigma DAC设计

    内容概要:本文献为电子科技大学硕士学位论文,题目为“高阶过采样delta-sigma DAC设计”。论文首先介绍了DAC的基本概念及其多种结构,重点阐述了delta-sigma DAC的优势,包括实现24位以上量化精度、简化模拟部分设计等。接着详细探讨了delta-sigma DAC的核心组成部分——过采样和噪声整形。过采样部分采用8倍插值8倍采样保持结构,其中插值器由2倍和4倍插值器级联构成;噪声整形部分采用5阶结构,优化了零点和极点,形成前馈加局部振荡反馈的噪声整形环。论文还介绍了在Matlab中完成的数字模型和FPGA平台上实现的硬件设计,最终实现了16位数据位宽、信噪比为95.53dB的delta-sigma DAC。 适合人群:具备一定电子工程和数字信号处理基础,特别是对DAC设计感兴趣的研究生或研究人员。 使用场景及目标:①适用于研究高精度数模转换技术的学术机构;②为设计高阶过采样delta-sigma DAC提供理论和技术支持;③探索delta-sigma技术在音频和其他高精度应用领域的潜力。 阅读建议:此资源不仅涉及复杂的理论分析,还包括详细的硬件实现步骤,建议读者在理解基本概念的基础上逐步深入,结合Matlab仿真和FPGA实现进行实践,以加深对delta-sigma DAC设计的理解。

    cmd-bat-批处理-脚本-弹出对话框.zip

    cmd-bat-批处理-脚本-弹出对话框.zip

    基于MATLAB实现的ARIMA模型代码示例

    提供一个ARIMA模型的MATLAB代码示例,该代码能够根据用户自身的具体需求灵活调整参数,从而达到预期的分析效果。

    cmd-bat-批处理-脚本-倒记时(全屏).zip

    cmd-bat-批处理-脚本-倒记时(全屏).zip

    ssm+vue图书管理系统全套源码+毕业论文+数据库sql

    ssm+vue图书管理系统全套源码+毕业论文+数据库sql,全套毕设,非常具有参考意义

    cmd-bat-批处理-脚本-更改电源管理方式.zip

    cmd-bat-批处理-脚本-更改电源管理方式.zip

    cmd-bat-批处理-脚本-禁止用XP的图片视频预览功能.zip

    cmd-bat-批处理-脚本-禁止用XP的图片视频预览功能.zip

    i.MX93实现搭建部署ONNX框架【AI项目实战】

    i.MX93外设驱动程序,一分价钱一分货,项目代码可顺利编译运行~

    cmd-bat-批处理-脚本-显示进度.zip

    cmd-bat-批处理-脚本-显示进度.zip

    企业生命周期数据集1999-2023(基于现金流组合).txt

    文件“企业生命周期数据集1999-2023(基于现金流组合).txt”提供了一个涵盖长达24年的企业数据集,专注于企业不同发展阶段的现金流特征。该数据集以文本格式保存,并通过百度网盘作为存储介质,便于用户下载和分析。具体来看,该数据集可能包括了企业从初创、成长、成熟到衰退等不同生命周期阶段的现金流情况,涉及的关键数据可能包含现金流的流入、流出、净额以及与企业财务健康状况和运营效率紧密相关的其他财务指标。 从数据集的命名和描述中可以推测,数据集中包含的企业财务信息是基于现金流的视角来构建的,这有助于研究人员、投资者和决策者从现金流的角度理解企业的经营状态和生命周期。现金流作为衡量企业运营绩效的重要指标,能够反映出企业的真实经营状况,尤其是在评估企业长期可持续性方面具有不可替代的作用。因此,该数据集对于研究企业生命周期理论、财务健康、投资策略等领域具有重要的参考价值。 文件提供的百度网盘链接和提取码,意味着数据集的获取方式是通过网络共享服务进行的。通过这种方式,用户可以不受地域限制,随时随地通过网络获取和使用这些数据。值得注意的是,文件内信息表明,提供的链接和提取码是永久有效的,并承诺一旦失效,将会及时补充更新,这体现了数据提供方对于数据持久性和可靠性的保证。 由于文件内容没有提供具体的数据样例或更详细的数据结构描述,无法得知该数据集具体包含哪些字段和指标,这些可能涉及企业的基本财务数据、现金流相关指标、企业规模、行业分类等。不过,文件提供的下载途径和数据集的时间跨度已经足够表明其潜在的广泛应用场景。 该数据集为企业生命周期研究提供了一项宝贵的数据资源,覆盖了从1999年至2023年的长期数据,能够为分析企业的长期财务表现和生命周期特征提供坚实的数据支持。对于学术研究、企业战略规划、金融分析等领域而言,这是一份不可多得的参考资料。

Global site tag (gtag.js) - Google Analytics