Flex BarChart中条形的反向顺序

时间:2009-10-14 17:19:30

标签: flex sql-order-by arraycollection bar-chart

我正在尝试在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>  

2 个答案:

答案 0 :(得分: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: Inverting LinearAxis values

答案 1 :(得分:1)

解决方案很简单。使用相同的对象创建一个新的数组或数组集合(您可能必须覆盖图表的dataProvider属性)并对它们进行排序。