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)
]);

这是我的条形图代码:

<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 的工作方式,您获得的输出是正确的,这也是您应该期待的输出。原点位于底部左侧,因此对象/列表从底部左侧开始并继续向外向上和向右。
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 回答