整数のデータを表示しようとしていますが、BarChart は軸に小数値を使用しているため、このシナリオでは意味がありません。軸に整数値のみを使用するようにグラフを強制する方法はありますか? 範囲がわからないので、1 から 10000000 の範囲になる可能性があるため、すべてを明示的に設定することはできません。
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 つの欠点は、10 進数の値に目盛りがまだ存在することです。
私はそれが<mx:LinearAxis interval="1"/>
うまくいくことを発見しました。0 ~ 2 のような小さな範囲では、0、1、2 のラベルが付けられますが、0 ~ 16 などの大きな範囲では、0、5、10、15 のラベルが付けられます。
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>
ChartName.Series(seriesName).YValueType = ChartValueType.Int32
From - ( Visual Studio 2010 チャート コントロール: Y 軸を 10 進数ではなく整数値にする)
これが発生する例を必ず示す必要があると思います。これを行うと (非常に単純な例で)、データが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>