2011-03-31 64 views
2

我試圖展示一些數據是整數,但BarChart在軸上使用小數值,在這種情況下沒有任何意義。有什麼辦法強制圖表只使用軸上的整數值?我不知道範圍,因此它可以是1到1000000之間的任何值,所以我不能僅僅明確地設置一切。如何在Flex圖表軸上顯示整個數字?

+0

一些代碼會有所幫助。 – 2011-03-31 04:17:23

回答

-1

我想你絕對需要告訴我們一個例子,發生這種情況。當我這樣做(在一個很簡單的例子),我得到的,即使我的數據是由Number s提高軸整數:

<fx:Script> 
    <![CDATA[ 
     import mx.collections.ArrayCollection; 

     var data:ArrayCollection = new ArrayCollection([ 
      { x: 5.5555333343, y: 5.111 }, 
      { x: 7.2, y: 9.5 }, 
      ]); 

    ]]> 
</fx:Script> 

<mx:BarChart dataProvider="{data}" width="100%" height="100%"> 
    <mx:series> 
     <mx:BarSeries xField="x" yField="y" /> 
    </mx:series> 
</mx:BarChart> 

enter image description here

+0

如果您嘗試使用較小的範圍,例如0-2,我打賭它將使用軸上的小數值開始。感謝您的測試, – JennySF 2011-05-13 04:06:19

5

恰好碰到了這個自己,並使用解決它我需要更改軸的自定義labelFunction。

圖MXML:

<mx:BarChart dataProvider="{data}" width="100%" height="100%"> 
    <mx:series> 
      <mx:BarSeries xField="x" yField="y" /> 
    </mx:series> 
    <mx:verticalAxis> 
     <mx:LinearAxis id="verticalAxis" labelFunction="verticalAxis_labelFunction" /> 
    </mx:verticalAxis> 
</mx:BarChart> 

labelFunction腳本:

protected function verticalAxis_labelFunction(labelValue:Object, previousValue:Object, axis:IAxis):String 
{ 
    if (Number(labelValue) != int(labelValue)) 
     return ""; 
    else 
     return String(labelValue); 
} 

的一個缺點這種方法是,蜱將仍然存在爲十進制值。

+0

我將用它作爲解決方法,非常感謝! – JennySF 2011-05-13 04:06:52

3

我發現<mx:LinearAxis interval="1"/>的作品。有一個小的範圍,如0-2它標記爲0,1,2,但具有較大範圍,如0-16,它標記爲0,5,10,15。

相關問題