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