图表控件中的标签
在图表控件中,可以使用轴标签和数据点标签显示更多的图表信息。
使用轴标签
图表控件通过三种不同方式为图表区轴添加标签,优先级从低至高分别为:
使用数字添加轴标签
使用文本添加轴标签
使用自定义标签添加轴标签
这些方法的主要区别是标签文本的生成方式。可以为各个轴使用不同的方法。例如,为 Y 轴使用一组自定义标签,而为 X 轴使用文本标签。
使用数字添加轴标签
如果轴不包含自定义标签,而且绘制的数据没有轴标签,则图表控件将自动以 Axis.Interval 属性指定的间隔显示轴标签。有关该属性的更多信息,请参见轴
使用文本添加轴标签
可以使用 DataPoint.AxisLabel 属性根据您的特定数据集添加轴标签。用标签字符串设置此属性之后,图表将在轴的数据点位置显示该标签字符串。
备注
当图表控件包含大型数据集时,它可以有选择地显示轴标签。若要确保所有轴标签可见,请将 Axis.Interval 属性设置为 1。
下面的代码示例在轴上为两个数据点设置两个标签。
Chart1.Series("Default").Points(0).AxisLabel = "First Point"
Chart1.Series("Default").Points(1).AxisLabel = "Second Point"
Chart1.Series["Default"].Points[0].AxisLabel = "First Point";
Chart1.Series["Default"].Points[1].AxisLabel = "Second Point";
使用自定义标签添加轴标签
使用自定义标签可为轴提供自定义文本。自定义标签是使用 CustomLabels 集合属性实现的。如果使用自定义标签,则图表区不会显示数据点的轴标签。
使用 CustomLabel 对象时,必须设置每个 CustomLabel 对象的 ToPosition 和 FromPosition 属性,并且这些属性必须指定标签文本区域的宽度。不要为这两个属性指定相同的值,因为它们表示一个范围。若要直接在数据点及其关联的刻度线下定位自定义标签,请将 FromPosition 属性设置为该数据点的轴值减去二分之一刻度线间隔,并将 ToPosition 属性设置为该数据点的轴值加上二分之一刻度线间隔。例如,如果轴的间隔为 1 (1, 2, 3,…),而您要在 X=2 处使用自定义标签,则将 ToPosition 和 FromPosition 属性分别设置为 1.5 和 2.5。
RowIndex 属性指定自定义标签显示在哪行上。如果第一个标签行中使用了自定义标签,则图表区不会显示任何轴刻度标签。在第二行及其他行上仅允许使用自定义标签。
轴标签的样式和格式
可以使用 Axis 对象的 LabelStyle 属性设置轴标签样式。在此属性中设置的标签样式属性(例如 LabelStyle.Font)应用于轴标签。如果轴标签相互离得太近,可以将 LabelStyle.LabelsAutoFit 或 LabelStyle.Offset 属性设置为 True。
若要使用数字添加轴标签,还可使用 LabelStyle.Format 属性设置数字的格式。
下面的代码演示如何将主 Y 轴的格式设置为货币格式。
Chart1.ChartAreas("Default").AxisY.LabelStyle.Format = "C"
Chart1.ChartAreas["Default"].AxisY.LabelStyle.Format = "C";
下面的代码在主 X 轴上显示一周的某天。有关在轴标签上显示日期和时间值的更多信息,请参见使用日期和时间值。
Chart1.ChartAreas("Default").AxisX.LabelStyle.Format = "dddd"
Chart1.ChartAreas["Default"].AxisX.LabelStyle.Format = "dddd";
为数据点添加标签
可以在绘制区显示数据点标签。若要将数据点值显示为标签,请使用 Series 或 DataPoint 对象的 IsValueShownAsLabel 属性。若要将其他文本显示为数据点标签,请使用 Series.Label 属性。
若要在标签中使用数据,请使用 Series.Label 属性中的关键字。在运行时,图表会将关键字替换为相应的值。例如,下面的代码为每个数据点显示多行标签,其中 Y 值显示在第一行,X 值显示在第二行。
Chart1.Series("Series1").Label = "Y = #VALY" + ControlChars.Lf + "X = #VALX"
Chart1.Series["Series1"].Label = "Y = #VALY\nX = #VALX";
有关更多信息,请参见关键字。
使用智能标签
可以根据图表类型,使用 Series.SmartLabelStyle 属性设置不会冲突的数据点标签。这适用于数据点簇聚在一起的情形。
若要启用智能标签,请使用下面的代码。
Chart1.Series("Series1").SmartLabelStyle.Enabled = true
Chart1.Series["Series1"].SmartLabelStyle.Enabled = true;
然后可以使用 SmartLabelStyle 的属性(例如 CalloutStyle 和 CalloutLineColor)来控制智能标签的外观。
请参见
参考
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting