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