我有一个需要一些自定义标签的酒吧堆积条形图。每个酒吧都需要显示标签前面的酒吧值。为了支持这一点,我为BarChart中的各种BarSeries创建了一个自定义labelFunction(见下文)。Flex BarChart Stacked BarSeries labelFunction - Bar Count vs. Stacked Sum
该函数成功呈现标签,但在堆叠条的情况下,标签值不显示我想要的内容。它不显示栏的值,而是显示栈中的栏的总和。例如,如果BarSet包含三个值为3,4和5的小节,则标签不会显示为“3”,“4”和“5”,而会显示为“3”,“7”和“12” ”。
从this example看起来我可以通过为每个BarSeries创建一个单独的labelFunction并访问特定属性(例如data.item。@ fooCount)来实现我想要的结果。不过,如果可能的话,我宁愿只有一个通用函数。是否有另一个属性可以取代xNumber,使我获得酒吧的特定价值而不是总和?
请注意,默认的标签行为(即不设置labelFunction)会显示单个值,而不是总和......所以我假设这是可能的,希望没有很多额外的箍环可以跳过。 :)
我自定义的labelFunction:
private function setCustomLabel(item:ChartItem, series:Series):String
{
var data:BarSeriesItem = BarSeriesItem(item);
var currentSeries:BarSeries = BarSeries(series);
return currentSeries.displayName + ": " + data.xNumber;
}
一些BARCHART代码片段:
<mx:BarChart id="myChart" showDataTips="true"
height="180" width="100%">
...
<mx:BarSet type="stacked">
<mx:BarSeries displayName="Foo Count" xField="fooCount"
labelFunction="setCustomLabel" />
<mx:BarSeries displayName="Bar Count" xField="barCount"
labelFunction="setCustomLabel" />
</mx:BarSet>
</mx:series>
</mx:BarChart>
谢谢!
截至目前,这_has_已经过测试,它的工作原理。正是我需要的。谢谢! – GoldDragonTSU 2011-05-11 15:38:49
@J_A_X我真的很高兴看到你的解决方案:)但我尝试了同样的事情,但它只是忽略了labelFunction并显示了正常的工具提示。是否还有其他步骤(我已经创建了labelFunction并在每个BarSeries中设置了labelFunction属性)? – Zesty 2012-02-05 12:39:35
@J_A_X我也试着返回“测试”,并且被忽略 - 它仍然显示BarChar的标准工具提示。 – Zesty 2012-02-05 12:42:00