`

flex 图表使用百分比示例

    博客分类:
  • flex
阅读更多
<?xml version="1.0"?>
<!-- charts/PredefinedAxisStyles.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	
	<mx:Script>
		<![CDATA[
			//导入相关包        
			import mx.collections.ArrayCollection;
			import mx.charts.*;
			import mx.charts.series.items.ColumnSeriesItem; 
			import mx.charts.ChartItem; 
			import mx.charts.chartClasses.Series; 
			import mx.charts.chartClasses.IAxis; 
			import mx.utils.ObjectUtil; 
			
			[Bindable]
			public var expenses:ArrayCollection = new ArrayCollection([
				{Month:"*", Profit:20, Expenses:15},
				{Month:"**", Profit:10, Expenses:20},
				{Month:"***", Profit:30, Expenses:40},
				{Month:"****", Profit:15, Expenses:25},
				{Month:"*****", Profit:40, Expenses:45}
			]);
			
			
			
			public function myLabelFormat(obj:Object,pcat:Object,ax:LinearAxis):String 
			{
				return  numForm.format(obj)+"%";
			}
			
			private function setCustomLabel(element:ChartItem, series:Series):String {
				// Get a refereence to the current data element.
				var data:ColumnSeriesItem = ColumnSeriesItem(element);        
				
				// Get a reference to the current series.        
				var currentSeries:ColumnSeries = ColumnSeries(series);
				
				// Create a return String and format the number.
				return  numForm.format(data.yNumber) + "%";        
			}
			
			
			// This method customizes the values of the axis labels.
			// This signature (with 4 arguments) is for a CategoryAxis.
			public function defineLabel(
				cat:Object, 
				pcat:Object,
				ax:CategoryAxis,
				labelItem:Object):String 
			{
				// Show contents of the labelItem:
				for (var s:String in labelItem) {
					trace(s + ":" + labelItem[s]);
				}
				
				// Return the customized categoryField value:
				//return cat + "";
				
				return '<font size="35"><font color="#ff0000">' + cat + '</font></font>';
				//'<font color="#ff0000">' + temp + </font>';
				//return null;

				
				// Note that if you did not specify a categoryField, 
				// cat would refer to the entire object and not the
				// value of a single field. You could then access 
				// fields by using cat.field_name.
			}
			
			
			
			public function myLabelDisplay(hd:HitData):String{
				//return hd.displayText + "%";
//				var curObj:Object = hd.item;   
//				var curSeries:BarSeries = BarSeries(hd.chartItem.element); // 获得当前的BarSeries   
//				return curObj.qual + "-" + curSeries.displayName + "\n" 
//					+ uqStatistics.getUQAs(curSeries.xField, curObj.qualObj).length 
//					+ RM.getString(BUNDLE_DASHBOARD, "label.piece");   
				var curObj:Object = hd.item;  
				var curSeries:ColumnSeries = ColumnSeries(hd.chartItem.element);
				if(curSeries.yField == "Profit")
					return curSeries.yField +  ":" + hd.item.Profit + "%";
				else 
					return curSeries.yField +  ":" + hd.item.Expenses + "%";
				
			}
			
			private function smoothImage(ev:Event):void{
				//set image smoothing so image looks better when transformed.
				var bmp:Bitmap = ev.target.content as Bitmap;
				bmp.smoothing = true;
			}

			
		]]>
	</mx:Script>
	<mx:NumberFormatter id="numForm" useThousandsSeparator="true"/>
	<mx:Panel title="Using Predefined Axis Styles">
		<mx:Legend dataProvider="{column}" labelPlacement="right" horizontalGap="2" direction="horizontal"/>
		<mx:ColumnChart id="column" dataProvider="{expenses}" showDataTips="true" dataTipFunction="myLabelDisplay">
			
			<!-- background elements --> 
			<mx:backgroundElements> 
				<mx:GridLines
							  horizontalTickAligned="true" 
							  verticalTickAligned="true"> 
					<mx:horizontalFill> 
						<mx:SolidColor color="haloBlue" alpha="0.2" /> 
					</mx:horizontalFill> 
					<mx:horizontalAlternateFill> 
						<mx:SolidColor color="haloSilver" alpha="0.2" /> 
					</mx:horizontalAlternateFill> 
					<mx:verticalFill> 
						<mx:SolidColor color="haloBlue" alpha="0.2" /> 
					</mx:verticalFill> 
					<mx:verticalAlternateFill> 
						<mx:SolidColor color="haloSilver" alpha="0.2" /> 
					</mx:verticalAlternateFill> 
				</mx:GridLines> 
			</mx:backgroundElements> 
			
			<mx:horizontalAxis>
				<mx:CategoryAxis 
					dataProvider="{expenses}" 
					categoryField="Month" labelFunction="defineLabel" 
					/>
			</mx:horizontalAxis>
			<!-- 设置纵坐标读取的属性 -->   
			<!-- 设置横坐标的最小刻度以及最大刻度,另外调用labelFunction重写刻度格式为百分比 --> 
			<mx:verticalAxis>
				<mx:LinearAxis  minimum="0" maximum="55" labelFunction="myLabelFormat"/>    
			</mx:verticalAxis>
			
			
			<mx:series>
				<mx:ColumnSeries 
					xField="Month" 
					yField="Profit"
					displayName="Profit" labelPosition="outside"  labelFunction="setCustomLabel"
					/>
				<mx:ColumnSeries 
					xField="Month" 
					yField="Expenses"
					displayName="Expenses" labelPosition="outside" labelFunction="setCustomLabel"
					/>
			</mx:series>
		</mx:ColumnChart>
		<!--
		<mx:Image id="loadedImage" source="asset/hello1.jpg" width="100%"  creationComplete="smoothImage(event);"/>
        -->
	</mx:Panel>	
	<mx:Style>	
		
		ColumnChart {
			horizontalAxisStyleName:myAxisStyles;
			verticalAxisStyleName:myAxisStyles;
		}
		
		.myAxisStyles {
			tickPlacement:none;
		}
	</mx:Style>
</mx:Application>

 

0
0
分享到:
评论

相关推荐

    Flex漂亮的柱状图(ColumnChart)

    Flex是一种开源的富互联网应用程序(RIA)开发框架,由Adobe公司提供,主要用于创建交互式、高性能的Web应用。...这个实例对于学习和理解Flex图表组件的使用非常有帮助,可以作为进一步开发自己数据可视化应用的基础。

    flex_amcharts

    AmCharts是一个广泛使用的JavaScript和Flash图表解决方案,而在Flex环境中,它为ActionScript 3开发者提供了强大的图表制作能力。 一、饼图 饼图是数据可视化中常用的一种图表类型,用于表示部分与整体的关系。在...

    amChart图表绘制学习控件

    在本文中,我们将深入探讨amChart的基本概念、功能特性以及如何使用它来构建各种图表。 首先,amChart支持Flex平台,这是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA)。Flex提供了强大的UI...

    pieChart 3d示例 flax

    ActionScript是一种面向对象的编程语言,常用于Adobe Flash和Flex开发。`flax`提供了一套灵活且可扩展的API,允许开发者轻松地构建交互式图表和动画。通过`flax`,你可以自定义颜色、标签、图例、动画效果等,以满足...

    很好的dashboard

    在描述中提到的"flex例子",指的是使用Flex框架编写的示例代码或者项目。Flex框架提供了MXML和ActionScript两种编程语言,MXML用于界面布局和组件声明,ActionScript则用于添加动态行为和处理逻辑。"绝对好东西"的...

    Flex 3 组件实例与应用(2009版)

    HScrollbar组件实现了水平滚动条的功能,当内容超出容器宽度时可以使用。 ##### 8. **HSlider** HSlider组件提供了水平滑块的功能,适用于设置数值范围内的值。 ##### 9. **List** List组件用于显示列表数据,...

    html显示堆叠面积图和堆叠图

    这两种图表可以帮助我们直观地理解不同类别在整体中的相对贡献和相互关系。...这些文件可能包含了使用特定库实现的示例代码,你可以通过查看和学习这些代码,进一步理解如何在实际项目中实现堆叠图和堆叠面积图。

    html5+css3页面布局

    通过`display: flex`启用,通过`flex-direction`、`justify-content`、`align-items`等属性调整元素的排列方式。 - Grid(网格布局):适合二维布局,可以将容器划分为网格,通过`display: grid`启用,使用`grid-...

    uniapp模板--主页

    综上所述,"uni-app模板--主页"是一个综合性的示例,它涵盖了uni-app的基本用法,包括页面结构、组件使用、数据可视化以及布局设计。开发者可以通过这个模板快速了解和上手uni-app的开发流程,并根据自己的需求进行...

    ReactNative组件用于利用ReactART创建动画圆形进度条

    这个示例展示了如何使用React Native和ReactART创建一个简单的动画圆形进度条。当然,你可以根据需求调整样式、添加更多的动画效果,或者集成到更复杂的应用场景中。了解并熟练掌握ReactART和React Native的动画系统...

    sensitiveMicrosoftPage:响应式设计的Microsoft网站副本登录页面

    /* 使用百分比宽度 */ float: left; /* 浮动布局 */ } ``` 自适应图像使用`max-width: 100%`属性,确保图像不会超出其容器的宽度: ```css img { max-width: 100%; height: auto; } ``` 灵活的媒体则包括视频...

Global site tag (gtag.js) - Google Analytics