我正在尝试在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>
答案 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属性)并对它们进行排序。