【问题标题】:Flex BarChart Stacked BarSeries labelFunction - Bar Count vs. Stacked SumFlex BarChart Stacked BarSeries labelFunction - Bar Count vs. Stacked Sum
【发布时间】:2011-05-10 21:36:22
【问题描述】:

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

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

this example 看来,我可以通过为每个单独的 BarSeries 创建单独的 labelFunction 并访问特定属性(例如 data.item.@fooCount)来实现我想要的结果。但是,如果可能的话,我宁愿只使用一个通用函数。我可以访问另一个属性来代替 xNumber 来获取条形的特定值而不是总和吗?

请注意,默认标签行为(即不设置 labelFunction)显示单个值,而不是总和......所以我假设它是可能的,希望没有很多额外的箍跳过。 :)

我的自定义标签函数:

  private function setCustomLabel(item:ChartItem, series:Series):String
  {

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

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

  }

一些条形图代码的sn-p:

  <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>

谢谢!

【问题讨论】:

    标签: apache-flex actionscript


    【解决方案1】:

    我相信您想要做的是使用 dataProvider。现在,您的 xNumber 将用于堆叠系列,而不是用于传入的数据。

    所以,我会尝试这样的事情:

    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];
    
      }
    

    这没有经过测试,但我认为您的想法是获取原始数据而不是使用项目显示的内容。

    【讨论】:

    • 到目前为止,这个已经经过测试并且可以正常工作。正是我需要的。谢谢!
    • @J_A_X 我很高兴看到您的解决方案:) 但我尝试了同样的事情,但它只是忽略了 labelFunction 并显示正常的工具提示。还有其他步骤吗(我已经创建了 labelFunction 并在每个 BarSeries 中设置了 labelFunction 属性)?
    • @J_A_X 我也尝试返回“test”,但也被忽略了 - 它仍然显示 BarChar 的标准工具提示。
    • 我忘了说,我也已经把 showDataTips="true" 放在了 BarChart 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多