如何为rangebarchart系列中的每个yvalue添加标签?
大家都知道,要绘制rangebartype系列,我们需要两个yvalue分别为yvalue [0]和yvalue [1]。在这里,我需要为每个yvalue添加数据标签(这意味着yvalue [0]和yvalue [1]都位于)。我该如何实施?有人可以建议我吗?
范围栏的标签应如下所示(将显示在范围栏的两侧)。
Label1 ███████████████ Label2
Label███████████████████ Label
最佳答案
MS Chart中没有内置的方法来执行此操作。但是,有一个丑陋的小解决方法可以为您提供所需的显示。
对于要显示的每个数据点(范围栏),您将需要创建两个相互重叠的数据点。举个例子:
数据点0:X = 1 Y = 5,10
数据点1:X = 1 Y = 10,5
这两个数据点位于彼此的顶部,除了一个数据点从左到右显示,另一个数据点从右到左显示。
对于每个DataPoint,在CustomProperties下都有BarLabelStyle属性。将两个数据点都设置为“外部”。通常,这将在范围栏的右侧显示标签,但是对于具有反向Y值的DataPoint1,现在将标签放置在范围栏的左侧。因此,将DataPoint0的标签设置为10(最大值),对于DataPoint1,将标签设置为5(最小值)。
然后看起来就像一个范围栏,其最小值在左侧,最大值在右侧。
警告:如果范围栏的任一端都太靠近图形的边缘,则MS Chart具有无限的智慧,将迫使标签显示在范围栏内。为了克服这个问题,您实际上可以在DataPoint对象的Y值上添加第三个数字。该第三个值不会显示,但是如果它大于数据系列中的最大Y值,它将迫使图表重新缩放以适应该更大的值,因此不会将标签强行放置在范围栏中。您还可以通过设置ChartArea的属性来处理另一种方式。