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