如何在Flex图表轴上仅显示整数?

时间:2011-03-31 03:57:55

标签: flex charts bar-chart

我试图显示一些整数的数据,但BarChart在轴上使用小数值,这在这种情况下毫无意义。有没有办法强制图表只在轴上使用整数值?我不知道范围所以它可能是1到10000000之间的任何东西,所以我不能只是明确地设置一切。

5 个答案:

答案 0 :(得分: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);
}

这种方法的一个缺点是小数值仍然存在刻度。

答案 1 :(得分:3)

我发现<mx:LinearAxis interval="1"/>有效。小范围,如0-2,标记为0,1,2但范围较大,如0-16,标记为0,5,10,15。

答案 2 :(得分:1)

将maximumLabelPrecision设置为0。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/charts/LinearAxis.html

<mx:verticalAxis>
    <mx:LinearAxis id="valueAxis" maximumLabelPrecision="0"/>
</mx:verticalAxis>

答案 3 :(得分:0)

ChartName.Series(seriesName).YValueType = ChartValueType.Int32

从 - (Visual Studio 2010 Chart control: Make Y Axis an Integer value, not decimal

答案 4 :(得分:-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