1

Flex で BarChart を使用しようとしています。フィードした ArrayCollection の順序に従ってバーを並べ替えたいと思います。つまり、インデックス 0 のデータは一番上の最初の棒になります。しかし、Flex はまったく逆の順序を教えてくれます。つまり、インデックス 0 のデータは一番下の最後のバーではありません。

ArrayCollection の順序を逆にする以外に、BarChart に順序を逆にするように指示するにはどうすればよいですか? ありがとう!!

私のスクリプトタグのコードブロックは次のとおりです。

[Bindable]
private var optionsArray:ArrayCollection = new ArrayCollection([
        new VotingOption('Yes, it rocks!', 'yes', 5),
        new VotingOption('Meh, it is okay!', 'ok', 10),
        new VotingOption('No, it sucks!', 'no', 15)
]);

そして、ここに私のBarChartコードがあります:

<mx:BarChart x="9.1" y="8" id="barchart1" width="563.0303" height="454.01514" maxBarWidth="30" 
    type="overlaid" dataProvider="{optionsArray}" showAllDataTips="true">

    <mx:verticalAxis>
        <mx:CategoryAxis id="vertAxis" categoryField="optionSMSCode"/>
    </mx:verticalAxis>

    <mx:verticalAxisRenderers>
        <mx:AxisRenderer axis="{vertAxis}" showLabels="false"/>     
    </mx:verticalAxisRenderers>

    <mx:series>
        <mx:BarSeries xField="optionResult" showDataEffect="morph"/>
    </mx:series>
</mx:BarChart>  
4

2 に答える 2

3

得られる出力は、Flex BarCharts の動作に応じて正しいものであり、これは予想される出力でもあります。原点はbottom_leftにあり、オブジェクト/リストはbottom_leftから始まり、上と右に向かって外側に続きます。
http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_03.html

あなたがそれを逆に解釈する方法を視覚的に理解しています。誰かがその dataProvider/ArrayCollection をその順序で提供したが、逆の順序で視覚化したいとしましょう。私は次のいずれかを行います 1)

//public var data:ArrayCollection;
data.source.reverse();

http://livedocs.adobe.com/flex/3/langref/Array.html

または 2)
AxisRenderer.labelFunction プロパティを使用して、垂直軸のラベルを反転します。
Flex: LinearAxis 値の反転

于 2009-10-14T19:53:06.140 に答える
1

解決策は簡単です。同じオブジェクトを使用して新しい配列または配列コレクションを作成し (チャートの dataProvider プロパティをオーバーライドする必要がある場合があります)、それらを並べ替えます。

于 2010-01-13T20:18:33.457 に答える