0
我正在使用Flex DateTimeAxis。我有一個場景,DateTimeAxis有時會在Axis上創建重複的月份。月份標籤單元是基於提供給DateTimeAxis的最小/最大值生成的,它不是由系列數據生成的,據我所知。換句話說,在提供給圖表的數據中不存在重複,但它是自動標籤生成過程的一部分,DateTimeAxis將在爲軸提供最小/最大值時執行該過程。爲什麼flex DateTimeAxis會在軸上創建重複的月份?
我在下面包含了這個問題的一個簡化例子。任何幫助表示讚賞。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var stockDataAC:ArrayCollection = new ArrayCollection([
{date: new Date(2009,4), close: 41.71},
{date: new Date(2009,5),close: 42.21},
{date: new Date(2009,6), close: 42.11},
{date: new Date(2009,7), close: 42.71},
{date: new Date(2009,9), close: 42.99}
]);
[Bindable] private var min:Date = new Date(2009,4);
[Bindable] private var max:Date = new Date(2010,3);
private function formatDate(value:Date,previousValue:Date,axis:DateTimeAxis):String {
var dateLabel:String = df.format(value);
return dateLabel;
}
]]>
</mx:Script>
<mx:DateFormatter id="df" formatString="MMM YY"/>
<mx:Panel title="DateTimeAxis Example" height="100%" width="100%">
<mx:LineChart id="mychart" height="100%" width="100%"
paddingRight="5" paddingLeft="5"
showDataTips="true" dataProvider="{stockDataAC}">
<mx:horizontalAxis>
<mx:DateTimeAxis dataUnits="months" labelUnits="months" alignLabelsToUnits="false" labelFunction="formatDate" minimum="{min}" maximum="{max}"/>
</mx:horizontalAxis>
<mx:verticalAxis>
<mx:LinearAxis baseAtZero="false" />
</mx:verticalAxis>
<mx:series>
<mx:LineSeries yField="close" xField="date" displayName="AAPL"/>
</mx:series>
</mx:LineChart>
</mx:Panel>