我有一个Flex条形图,其中有两个数据系列的数据系列。该系列称为RequiredFunding和ApprovedFunding,因此它们彼此相邻绘制。我遇到的问题是尝试格式化Funding轴上的标签功能。我有几千美元的显示,需要用美元符号和逗号格式化(我已经有了这个功能)。
当我尝试将标签函数应用于水平轴时,我返回MoneyFormatter.format(labelValue),这是我的应用程序范围的货币格式化程序,但这不起作用,因为dataProvider中有两个不同的金额...有labelValue.RequiredFunding和labelValue.ApprovedFunding。
希望我能正确地解释一下......有没有人有任何想法?
-Matt
编辑:我担心我没有足够清楚地解释这个问题!别担心。基本上,我想格式化我的底轴,目前说8000,16000,24000和32000,分别是$ 8,000,$ 16,000,$ 24,000和$ 32,000。但问题是,该轴不会超出RequiredFunding数量或ApprovedFunding数量......它会自动适应较大值......或者以某种方式将两个分组系列视为单个系列......我是不确定。例如,如果我将其设置为返回MoneyFormatter.format(RequiredFunding),它将正确格式化...但它只会为RequiredFunding数量设置标签(如$ 14,543,$ 2,543,$ 31,230)并且不会绘制任何一个条形图系列。我希望这能搞清楚。如果有必要,我可以上传一些屏幕上限。答案 0 :(得分:1)
我有这个并且它正在运作:
<mx:CurrencyFormatter id="moneyFormatter" currencySymbol="$" thousandsSeparatorTo="," />
<mx:BarChart dataProvider="{testData.Sample}">
<mx:series>
<mx:BarSeries yField="visitors" />
<mx:BarSeries yField="overhead" />
</mx:series>
<mx:horizontalAxis>
<mx:CategoryAxis dataFunction="moneyFormat"/>
</mx:horizontalAxis>
</mx:BarChart>
moneyFormat功能:
private function moneyFormat(cat:Object, labelItem:Object):String{
return moneyFormatter.format(labelItem.value);
}
我使用了一些我自己的测试数据,所以不介意奇怪的yFields。我希望这有帮助
答案 1 :(得分:0)
我不确定你想要什么。您可以使用labelValue.RequiredFunding之后调用MoneyFormatter.format(),然后再调用labelValue.ApprovedFunding吗?可能我做得不对