2

如何为范围条形图系列中的每个 yvalue 添加标签?

你们都知道,为了绘制 rangebartype 系列,我们需要两个 yvalues 作为 yvalue[0] 和 yvalue[1] 。这里我需要为每个 yvalues 添加数据标签(这意味着在 yvalue[0] 和 yvalue[1] )。我该如何实现?有人可以建议我吗?拜托!

范围栏的标签应如下所示(显示在范围栏的两侧)。

Label1 ███████████████ Label2

                    Label███████████████████ Label
4

1 回答 1

2

在 MS Chart 中没有内置的方法可以做到这一点。但是,有一个丑陋的小解决方法可以为您提供所需的显示。

对于要显示的每个数据点(范围栏),您需要创建 2 个相互重叠的数据点。例如:
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 的属性来处理这种情况。

于 2010-03-11T23:11:33.460 回答