Previous topicNext topic
Help > 开发指南 > 窗体开发 > 控件参考 > 控件参考 > 图表 > SmFlexChart > 属性 > Axes轴 >
轴标签

轴标签

轴标签是引用沿轴出现的主要分区的文本。在分类轴上,轴标签显示类别名称,而数值轴上的标签显示值。默认情况下,FlexChart 会根据数据自动生成两个轴的轴标签,并根据轴线上的可用空间显示或隐藏它们。但是,通过将 LabelMax 和 LabelMin 属性分别设置为 True,可以将图表设置为在自动生成和放置时始终显示最大值和最小值的轴标签。默认情况下,LabelMax 属性显示最大轴值,该值可能与 MajorUnit 属性设置的轴间隔同步,也可能不同步。若要避免这种间隔不均匀的情况,可以将 Axis 类的“轮次限制”属性设置为 true。还可以通过将 Axis 类的 Labels 属性设置为 False 来选择隐藏特定轴的所有标签。FlexChart 还允许您通过设置 LabelAlign 属性来相对于轴上的刻度线定位数据标签。可以通过设置 Format 属性来更改轴标签的格式。

若要在弹性图表中设置轴标签,请使用以下代码。此代码在 FlexChart 中设置格式、对齐方式、间隔和最大轴级别。

Vb.Net
 
'Specifies label position relative to its axis line
flexChart1.AxisX.LabelAlignment = AxisLabelAlignment.Top
flexChart1.AxisY.Format = "#,##0,,"
'Displays max axis value
flexChart1.AxisY.LabelMax = true
'Rounds off max axis value
flexChart1.AxisY.RoundLimits = true  

C#
 
//Specifies label position relative to its axis line
flexChart1.AxisX.LabelAlignment = AxisLabelAlignment.Top;
flexChart1.AxisY.Format = "#,##0,,";
//Displays max axis value
flexChart1.AxisY.LabelMax = true;
//Rounds off max axis value
flexChart1.AxisY.RoundLimits = true; 

管理重叠轴标签(OverlappingLabels)

轴标签的重叠通常是由于长轴标签文本或图表上绘制的大量数据点而发生的。使用FlexChart,您可以获得许多选项来管理轴标签。您可以根据图表数据和您的要求选择其中任何一个。

重叠标签选项

如前所述,默认情况下,FlexChart 会自动放置轴标签,并在空间不允许显示重叠标签时隐藏重叠标签。但是,FlexChart 提供了各种选项来处理重叠的标签。Axis 类的 OverlappingLabels 属性(默认情况下设置为“自动”并负责隐藏重叠的轴标签)还允许您在重叠的情况下显示、裁切或换行标签。此属性接受来自重叠标签枚举的值。

Vb.Net
 
' Wrap the label text if it exceeds the available width
flexChart1.AxisX.OverlappingLabels = OverlappingLabels.WordWrap

C#
 
//Wrap the label text if it exceeds the available width
flexChart1.AxisX.OverlappingLabels = OverlappingLabels.WordWrap;

调整轴标签方向(VerticalText)

弹性图表支持更改轴标签文本的方向。标签方向的更改是管理轴标签重叠的最常用方法之一。使用弹性图表,可以通过将 VerticalText 属性设置为 true 来更改标签文本的方向。默认情况下,此属性垂直呈现水平方向的轴标签文本。

Vb.Net
 
' set the orientation of labels
flexChart1.AxisX.Style.VerticalText = true
flexChart1.AxisY.Style.VerticalText = false

C#
 
//set the orientation of labels
flexChart1.AxisX.Style.VerticalText = true;
flexChart1.AxisY.Style.VerticalText = false;

旋转轴标签(LabelAngle)

处理重叠轴标签的另一个选项是通过设置 LabelAngle 属性相对于轴线旋转它们。此属性接受以度为单位的 -90 到 90 的数值,并按逆时针方向按指定角度旋转轴标签,从而使其外观更美观。

Vb.Net
 
'Rotate the labels counter-clockwise by 70 degrees
flexChart1.AxisX.LabelAngle = 70

C#
 
//Rotate the labels counter-clockwise by 70 degrees
flexChart1.AxisX.LabelAngle = 70;

交错轴标签(StaggeredLines)

交错轴标签是管理重叠轴标签的另一种有效方法。这样,您可以将轴标签排列在多行中,以便它们不重叠但可见。这可以通过将 StaggeredLines 属性的值设置为大于 1 的值来完成,该值是属性的默认值。

Vb.Net
 
'Display the axis labels in staggered lines
flexChart1.AxisX.StaggeredLines = 2

C#
 
//Display the axis labels in staggered lines
flexChart1.AxisX.StaggeredLines = 2;

自定义格式轴标签

除了使用 Format 属性更改轴标签的格式外,FlexChart 还允许您为轴标签指定自定义格式化程序。它在 Axis 类中提供了格式化程序属性,该属性允许您创建自己的自定义格式并将其应用于轴标签。

下图显示了应用于 y 轴标签的自定义格式。


下面的代码使用 格式化程序 属性设置 y 轴标签的自定义格式。在此示例中,我们创建了一个名为 CustomAxisLabelFormatter 的类,用于定义使用 Formatter 属性应用于 y 轴标签的自定义格式。

Vb.Net
 
' using a custom formatter, to format the Axis labels
flexChart1.AxisY.Formatter = new CustomAxisLabelFormatter()

C#
 
//using a custom formatter, to format the Axis labels
flexChart1.AxisY.Formatter = new CustomAxisLabelFormatter();

下面的代码展示了定义自定义格式的 CustomAxisLabelFormatter 类。

Vb.Net
 
Public Class CustomAxisLabelFormatter Inherits ICustomFormatter

 Public Function Format(ByVal format As String, ByVal arg As Object, ByVal formatProvider As IFormatProvider) As String
     Dim formattedString = String.Format("{0:0,.#k}", arg)
     Return formattedString
 End Function
End Class

C#
 
public class CustomAxisLabelFormatter : ICustomFormatter
{
    public string Format(string format, object arg, IFormatProvider formatProvider)
    {
        //applying a custom format
        var formattedString = string.Format("{0:0,.#k}", arg);

        //returning the custom formatted string
        return formattedString;
    }
}