Flex中如何给LineChart设置坐标轴最大最小范围的例子
By Minidxer | December 4, 2008
接下来的例子演示了Flex中如何给LineChart设置坐标轴最大最小范围。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white"
- preinitialize="init();">
- <mx:Script>
- <![CDATA[
- import mx.charts.chartClasses.IAxis;
- import mx.formatters.CurrencyFormatter;
- private var currFormatter:CurrencyFormatter;
- private function init():void {
- currFormatter = new CurrencyFormatter();
- currFormatter.precision = 2;
- }
- private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
- return currFormatter.format(item);
- }
- private function lineChart_creationComplete():void {
- var linearAxisMinimum:int = Math.floor(linearAxis.computedMinimum);
- var linearAxisMaximum:int = Math.ceil(linearAxis.computedMaximum);
- linearAxis.minimum = linearAxisMinimum;
- linearAxis.maximum = linearAxisMaximum;
- }
- ]]>
- </mx:Script>
- <mx:XMLListCollection id="dp">
- <mx:source>
- <mx:XMLList>
- <quote date="8/27/2007" open="40.38" close="40.81" />
- <quote date="8/24/2007" open="40.5" close="40.41" />
- <quote date="8/23/2007" open="40.82" close="40.6" />
- <quote date="8/22/2007" open="40.4" close="40.77" />
- <quote date="8/21/2007" open="40.41" close="40.13" />
- <quote date="8/20/2007" open="40.55" close="40.74" />
- <quote date="8/17/2007" open="40.18" close="40.32" />
- <quote date="8/16/2007" open="39.83" close="39.96" />
- <quote date="8/15/2007" open="40.22" close="40.18" />
- <quote date="8/14/2007" open="41.01" close="40.41" />
- <quote date="8/13/2007" open="41" close="40.83" />
- <quote date="8/10/2007" open="41.3" close="41.06" />
- <quote date="8/9/2007" open="39.9" close="40.75" />
- <quote date="8/8/2007" open="39.61" close="40.23" />
- <quote date="8/7/2007" open="39.08" close="39.42" />
- <quote date="8/6/2007" open="38.71" close="39.38" />
- <quote date="8/3/2007" open="39.47" close="38.75" />
- <quote date="8/2/2007" open="39.4" close="39.52" />
- <quote date="8/1/2007" open="40.29" close="39.58" />
- </mx:XMLList>
- </mx:source>
- </mx:XMLListCollection>
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain">
- <mx:FormItem label="minimum:">
- <mx:HSlider id="minSlider"
- minimum="28"
- maximum="38"
- value="38"
- liveDragging="true"
- snapInterval="1"
- change="linearAxis.minimum = event.value;" />
- </mx:FormItem>
- <mx:FormItem label="maximum:">
- <mx:HSlider id="maxSlider"
- minimum="42"
- maximum="52"
- value="42"
- liveDragging="true"
- snapInterval="1"
- change="linearAxis.maximum = event.value;" />
- </mx:FormItem>
- </mx:Form>
- <mx:Spacer width="100%" />
- <mx:Legend dataProvider="{lineChart}"
- direction="horizontal" />
- </mx:ApplicationControlBar>
- <mx:LineChart id="lineChart"
- showDataTips="true"
- dataProvider="{dp}"
- width="100%"
- height="100%"
- creationComplete="lineChart_creationComplete();">
- <mx:backgroundElements>
- <mx:GridLines id="gridLines"
- direction="both"
- verticalTickAligned="false">
- <mx:verticalStroke>
- <mx:Stroke color="haloSilver"
- weight="0"
- alpha="1.0" />
- </mx:verticalStroke>
- <mx:horizontalStroke>
- <!-- Set alpha to 0 so stroke isn't visible. -->
- <mx:Stroke color="white"
- weight="0"
- alpha="0.0" />
- </mx:horizontalStroke>
- <mx:horizontalFill>
- <mx:SolidColor color="haloSilver"
- alpha="0.1" />
- </mx:horizontalFill>
- </mx:GridLines>
- </mx:backgroundElements>
- <!-- vertical axis -->
- <mx:verticalAxis>
- <mx:LinearAxis id="linearAxis"
- baseAtZero="false"
- title="Price (USD)"
- minorInterval="0.10"
- interval="0.5"
- labelFunction="linearAxis_labelFunc" />
- </mx:verticalAxis>
- <!-- horizontal axis -->
- <mx:horizontalAxis>
- <mx:CategoryAxis id="ca"
- categoryField="@date"
- title="Date" />
- </mx:horizontalAxis>
- <!-- horizontal axis renderer -->
- <mx:horizontalAxisRenderers>
- <mx:AxisRenderer axis="{ca}"
- canDropLabels="true" />
- </mx:horizontalAxisRenderers>
- <!-- series -->
- <mx:series>
- <mx:LineSeries yField="@open"
- displayName="Open" />
- </mx:series>
- </mx:LineChart>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Chart |
1 Comment » |
Tags: interval, LineChart, maximum, minimum, minorInterval
Trackbacks