首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex BarChart堆叠BarSeries labelFunction -条形图计数与堆叠总和

Flex BarChart堆叠BarSeries labelFunction -条形图计数与堆叠总和
EN

Stack Overflow用户
提问于 2011-05-11 05:36:23
回答 1查看 2K关注 0票数 0

我有一个堆叠的条形图,条形图需要一些自定义标签。每个条形图都需要显示前面有标签的条形图的值。为了支持这一点,我为BarChart中的各种BarSeries创建了一个自定义labelFunction (见下文)。

该函数成功地呈现了标签,但在堆叠条形图的情况下,标签值没有显示我想要的内容。它不是显示条形图的值,而是显示堆栈中条形图的总和。例如,如果BarSet包含三个值分别为3、4和5的条形图,则标签不会显示为"3“、"4”和"5",而是"3“、"7”和"12“。

this example上看,我可以通过为每个单独的BarSeries创建一个单独的labelFunction并访问特定的属性(例如data.item.@fooCount)来实现我想要的结果。但是,如果可能的话,我更喜欢只有一个泛型函数。是否有其他属性可以代替xNumber来获取条形图的特定值,而不是总和?

请注意,默认标签行为(即不设置labelFunction)显示的是单个值,而不是总和...所以我假设这是可能的,希望不会有太多额外的障碍。:)

我的自定义labelFunction:

代码语言:javascript
复制
  private function setCustomLabel(item:ChartItem, series:Series):String
  {

    var data:BarSeriesItem = BarSeriesItem(item);
    var currentSeries:BarSeries = BarSeries(series);

    return currentSeries.displayName + ": " + data.xNumber;

  }

下面是一些BarChart代码的片段:

代码语言:javascript
复制
  <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>

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-11 22:44:37

我相信你想要做的就是使用dataProvider。现在,您的xNumber应该是针对堆叠序列的,而不是针对传入数据的。

所以,我会尝试这样做:

代码语言:javascript
复制
private function setCustomLabel(item:ChartItem, series:Series):String
  {

    var data:BarSeriesItem = BarSeriesItem(item);
    var currentSeries:BarSeries = BarSeries(series);

    return currentSeries.displayName + ": " + data.item[currentSeries.xField];

  }

这并未经过测试,但我认为您会得到原始数据,而不是使用项目显示的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5956773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档