本文档阐述了如何为 系列点 提供文本标签,如何管理系列点标签显示的数据并且设置它们的输出格式。 本文档描述了当标签太长并且数量众多时,如何消除标签的重叠。 另外,还说明了如何访问系列标签,以及调整系列标签的外观的方式。
本文档由下列小节组成。
系列点标签概述
每个 系列点 都可以伴有一个呈现相关数据的文本标签。 这些标签就是 系列点标签 (或者简称为 系列标签)。
对于不同视图类型的系列,点呈现不同类型的数据,因此对应的系列标签就可以含有点的取值、参数或两者 (如何: 改变系列标签的显示格式)。 如果需要,也可以让标签显示任何自定义信息 (如何: 让系列标签显示自定义信息),或者有条件地控制它的外观 (如何: 有条件地隐藏系列标签)。
本文档的下列小节重点说明了系列标签的最重要的方面。
访问系列点标签
要在设计时刻访问那些指定系列标签内容、位置和外观的设置,则在图表控件中单击系列标签来选中它们。 或者选中系列,并且在 属性 窗口中,展开用于访问这些设置的 SeriesBase.Label 属性。
要在运行时刻访问这些设置,则使用下列代码。
C# | 复制代码 |
---|---|
// Access labels of series maintained in the chart's collection. chart.Series[0].Label.Visible = true; // Access labels of auto-created series. chart.SeriesTemplate.Label.Visible = true; |
Visual Basic | 复制代码 |
---|---|
' Access labels of series maintained in the chart's collection. chart.Series(0).Label.Visible = True ' Access labels of auto-created series. chart.SeriesTemplate.Label.Visible = True |
注意,每种系列视图类型的可用选项组都是特有的。 出于简化目的,并且因为 折线图 是最通俗的视图类型,因此我们将在本文档中使用折线图,进一步说明系列标签的功能。
这些选项包含于下面的两种类别中,并且在本文档对应的小节中描述了这些选项。
消除系列标签的重叠
当系列中有非常多的数据点时,或者当系列点的参数或取值很长时,系列标签可能会重叠。 在这些情形中,可以使用 XtraCharts 提供的多种消除重叠算法,以便于满足特定的需求。 此功能对二维和三维系列视图类型都是可用的。
但是,在某些场景中,最佳的解决方案可能是完全隐藏系列标签,并且当鼠标指针悬停在系列点上时,在工具提示中显示来源于系列的下层数据源的信息。 这要求编写一些代码,可以在下列指南中找到类似代码: 如何: 显示有系列点数据的工具提示。
要启用重叠解决方案,则把 SeriesLabelBase.ResolveOverlappingMode 设置为一个非 None 值。 在下面说明了可用的模式。
注意 |
---|
对于 饼 系列,要访问 SeriesLabelBase.ResolveOverlappingMode 属性,则必须把 PieSeriesLabel.Position 属性值设置为 PieSeriesLabelPosition.TwoColumns 或 PieSeriesLabelPosition.Outside。 |
注意,对于不同的 系列视图类型,也有不同的重叠解决方案模式。 此外,相同的模式可能有不同的实现,以便于满足系列视图类型的特定要求。 下表展示了对于不同系列视图类型可以使用的模式。
模式 |
说明 |
系列视图类型 |
---|---|---|
Default | 这种算法以随机方式重新调整标签的位置,从而避免标签的重叠。 这种模式只改变重叠标签的位置。 | 所有视图类型,考虑了视图类型的特性。 |
HideOverlapped |
在这种模式中,如果两个或多个标签发生重叠,就自动隐藏一些标签,从而避免重叠。 |
除去 饼和圆环 和 漏斗 系列之外的所有视图类型。 |
JustifyAroundPoint | 只改变重叠标签的位置。 以这种方式重新调整它们的位置: 围绕对应点的中心来移动它们,但是保留相对于点中心的缩进。 这种模式只改变重叠标签的位置。 | 按照定义,这种模式支持那些在视觉上把数据点呈现为点的视图类型。 因此,是除去 饼和圆环、甘特、条形和柱状、气泡、和 股价 系列以外的所有视图类型。 |
JustifyAllAroundPoint | 改变所有标签 (不论是否重叠) 的位置。 以这种方式重新调整它们的位置: 围绕对应点的中心来移动它们,但是保留相对于点中心的缩进。 | 按照定义,这种模式支持那些在视觉上把数据点呈现为点的视图类型。 因此,是除去 饼和圆环、甘特、条形和柱状、气泡、和 股价 系列以外的所有视图类型。 |
在启用了任何一种重叠消除模式之后,SeriesLabelBase.ResolveOverlappingMinIndent 属性就发挥作用,允许确定在两个相邻系列点标签之间的最小缩进量。 注意,此属性同时对所有系列生效,因此对一个系列设置此属性,更改就会应用于图表中的所有系列。 对于 饼和圆环、气泡 和 股价 系列,此属性不可用。
下面的插图展示了此属性的作用 (另外 SeriesLabelBase.ResolveOverlappingMode 属性被设置为 JustifyAroundPoint)。
ResolveOverlappingMinIndent = -1 |
ResolveOverlappingMinIndent = 10 |
---|---|
定制系列标签的显示格式
因为系列标签呈现对应系列点的数据,因此可以设置数据的格式。 如果系列的参数或取值数据成员是 日期时间 或 数值 刻度类型 (通过 SeriesBase.ArgumentScaleType 或 SeriesBase.ValueScaleType 属性指定),就可以使用 SeriesBase.PointOptions 属性,来访问适合于这种刻度类型的对应格式设置。
此属性最重要的选项是 PointOptions.ArgumentDateTimeOptions 和 PointOptions.ArgumentNumericOptions 属性,允许把格式 (例如货币、日期时间或自定义格式) 应用于数据点。 要学习更多相关内容,请参阅 系列的刻度类型。
取决于系列的 视图类型,这些选项组是变化的。 例如,对于 饼和圆环 系列视图类型,就有一个额外的 SimplePointOptions.PercentOptions 属性。 并且,对于百分比堆积系列,也有一个类似的 FullStackedPointOptions.PercentOptions 属性。
下面的插图展示了对 条形 系列可用的点选项。
要确定系列标签是否应该显示点的 取值、参数、取值和参数,或者只显示 系列名称,则使用 PointOptions.PointView 属性。
关于使用这些选项的具体指南,请参阅 如何: 改变系列标签的显示格式。
定制系列标签的布局
下列布局选项对 条形和柱状 系列视图类型可用。
BarSeriesLabel.ShowForZeroValues 属性被用于确定是否显示零值数据点的标签。
ShowForZeroValues = true |
ShowForZeroValues = false |
---|---|
SeriesLabelBase.TextOrientation 属性指定系列标签中文本的方向。
TextOrientation = Horizontal |
TextOrientation = TopToBottom |
TextOrientation = BottomToTop |
---|---|---|
BarSeriesLabel.Position 属性指定系列点标签相对于对应条形的位置。 此外,BarSeriesLabel.Indent 属性维护在标签和对应条形边之间的缩进量。
Position = Center |
Position = Top |
---|---|
Position = BottomInside |
Position = TopInside |
对于 甘特 和 范围条形 系列,为了满足这些视图类型的要求,有特定的选项可用: RangeBarSeriesLabel.Indent、RangeBarSeriesLabel.Kind 和 RangeBarSeriesLabel.Position 属性。
对于 气泡 系列,下列布局选项可用:
- BubbleSeriesLabel.IndentFromMarker 属性,当 BubbleSeriesLabel.Position 属性值被设置为 Outside 时可用。 它指定在标记边缘和标签之间的缩进量;
- BubbleSeriesLabel.ValueToDisplay 属性,指定系列标签是否显示点的 权重、取值 或两者。
对于 饼和圆环 系列,PieSeriesLabel.Position 属性允许把系列标签组织为两栏,并位于系列的任何一侧。
最后,PointSeriesLabel.Angle 属性允许指定系列点标签相对于对应数据点的角度值。 角度是以度为单位的,并且沿水平逆时针方向。 注意,在 ResolveOverlappingMode.JustifyAllAroundPoint 模式中,以及对于某些系列视图类型 (例如 饼和圆环、股价 系列),此选项不可用。 对于 气泡 系列,仅当 BubbleSeriesLabel.Position 属性值被设置为 Outside 时,此选项才可用。
Angle = 45 |
Angle = 0 |
Angle = -60 |
---|---|---|
定制系列标签的外观
取决于系列的 视图类型,系列标签的外观选项组是变化的。 在下面列出了最常用的选项。
- 下列属性控制系列标签的 字体选项:SeriesLabelBase.Font、SeriesLabelBase.Antialiasing、和 SeriesLabelBase.TextColor。
- 下列属性控制系列标签的 标签线选项: SeriesLabelBase.LineColor、SeriesLabelBase.LineLength、SeriesLabelBase.LineStyle 和 SeriesLabelBase.LineVisible。
- 下列属性控制系列标签的 外观选项: SeriesLabelBase.Visible、SeriesLabelBase.BackColor、SeriesLabelBase.FillStyle、SeriesLabelBase.Border 和 SeriesLabelBase.Shadow。