【问题标题】:Spotfire : Weighted Percentage Calculation in BarChartSpotfire:条形图中的加权百分比计算
【发布时间】:2016-10-20 10:41:19
【问题描述】:

我有这组数据:

Kind     Weight  
A        3  
A        3
A        3
B        2
B        2
C        1  

我想创建一个 Spotfire 条形图,表示不同 Kind 列值的贡献。在这种情况下 Spotfire 提供的表达式是:

Count() / THEN [Value] / Sum([Value]) OVER (All([Axis.X]))  

但我想将其除以 Weight 列的值。当 Spotfire 要求使用聚合方法时,我尝试了这个方法,但没有成功:

Count() / First([Weight]) THEN [Value] / Sum([Value]) OVER (All([Axis.X]))

为了记录,我没有使用计算值,因为我的目的是拥有一个动态条形图。

提前致谢。

【问题讨论】:

  • 您的预期结果如何?您能否附上条形图,显示与您想要的输出相比,它正在呈现什么?
  • 我想要一个条形图,在我的示例中,A、B 和 C 具有相同的值,即 33%。 A 的 3 次出现除以它们的权重,B 和 C 也是如此。目前,A 为 50%,B 为 33%,C 为 17%
  • 那么 C 是 1,所以 1/1 是 100%……那怎么会是 33%? A 应该是 33,B 应该是 50……你如何得到 33?
  • 让我详细说明我的计算:C 是 1/1,B 是 2/2,A 是 3/3,所以每个都是 33%

标签: bar-chart percentage spotfire


【解决方案1】:

根据您想要的逻辑,您可以在您的条形图的VALUE AXIS 上使用它:

UniqueCount([Kind]) / UniqueCount([Kind]) OVER (All([Axis.X]))

除非Weight 不等于Count of Kind,否则这将起作用

如果您的Weight 可以更改,例如,如果Kind A 的权重为2 而不是3,但仍有3 行,您可以通过这样做来完成您的逻辑:

  1. 插入计算列:Count([Kind]) OVER ([Kind]) / Max([Weight]) OVER ([Kind])。将此列命名为WeightedWeight
  2. 在条形图Max([WeightedWeight]) / UniqueCount([Kind]) OVER (All([Axis.X]))VALUE AXIS 上使用此公式

【讨论】:

  • 您的解决方案与计算的作品就好了。非常感谢您的帮助和耐心
  • 完全没问题。起初我很困惑,因为你的问题很抽象,但很高兴我能提供帮助。请务必接受所有问题的正确答案。 stackoverflow.com/help/someone-answers
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
  • 2019-09-05
相关资源
最近更新 更多