我试图让这个专栏聊天的标签出现在专栏底部,就像下面的第二张图片一样。然而,该解决方案并不完全有效,因为它会扭曲其余信息。
有谁知道完成此任务的适当方法,这不是直截了当的。
我正在使用以下数据:
拿一张标准图表:
第一个图表系列是我们的数据系列,图表类型为标准列,第二个图表系列的图表类型为线条,基于目标值在图表区域中获取所需的线条。
正如您可能已经看到的那样,您确实可以控制标签放置,但不能满足您的要求。我们能做的最好的事情是使用底部位置作为标签位置,它甚至不接近:
我们能做什么?首先,从现有系列中删除标签。
接下来,在图表中添加一个新系列:
基本上我们在这里使用一个常数,它应该是 Y 轴的下限。在这种情况下,我使用0 。
这个新的图表系列需要排在所有图表系列的首位。
将前两个 Chart Series 的 Chart Type 更改为Stacked Column:
将系列标签添加到这个新的图表系列。在Series Label Properties下设置 Label 数据表达式。我使用的表达式是:
=Sum(Fields!val.Value, "CategoryGroup")
由于两个图表系列共享相同的范围,我们可以利用它来获取上述数据组的值。
这CategoryGroup
是类别组的名称:
更新后的图表如下所示:
结果是根据需要在每列底部的标签:
似乎是所需的结果,即使需要一段时间才能到达那里。
因此,通过使用位于每个组 Y 轴底部的虚拟图表系列,我们可以根据需要将标签锚定在底部,并通过使用标签表达式显示不同的图表系列值,它看起来像一个标签在实际数据组上!
评论后编辑
您绝对可以使用表达式来设置最小轴值以及虚拟图表系列,这只是您是否可以获得所需的确切值的一种情况。
在我的示例中,假设我们将轴值更改为数据集中的最小值:
IE=Min(Fields!val.Value)
由于虚拟图表系列将查看每个单独类别组的范围,我们需要稍微不同的表达式来获得相同的值:
=Min(Fields!val.Value, "DataSet1")
正如我们所期望的那样,这会改变图表:
您还可以为该值添加一个缓冲区,例如:
=Min(Fields!val.Value) - 1
所以你不会得到没有高度的列。
对于更复杂的表达式,可能会出现问题,即在 2008 年您无法获得聚合上的聚合,这可能很有用,即使这样也很难将其带入虚拟图表系列。
有时,如果可能,最简单的方法是使用预先生成的这些值将列添加到数据集中并使用这些字段,而不是尝试在报告中计算它。