Back to Devexpress

IAxisLabelFormatter Interface

corelibraries-devexpress-dot-xtracharts-3a1aeabe.md

latest5.1 KB
Original Source

IAxisLabelFormatter Interface

If implemented by a class, provides a method required for a chart control to format axis labels.

Namespace : DevExpress.XtraCharts

Assembly : DevExpress.XtraCharts.v25.2.dll

NuGet Package : DevExpress.Charts

Declaration

csharp
public interface IAxisLabelFormatter :
    IAxisLabelFormatterCore
vb
Public Interface IAxisLabelFormatter
    Inherits IAxisLabelFormatterCore

The following members return IAxisLabelFormatter objects:

Example

Perform the steps below to create a custom formatter for axis labels:

  • Create a class that inherits the IAxisLabelFormatter interface and implement the interface’s GetAxisLabelText method.
  • Assign the newly created class instance to the AxisLabel.Formatter property.

How to: Format Numeric Axis Labels

This example shows how to apply a custom format to a numeric axis’s labels.

A formatter applies to axis labels:

A formatter does not apply to axis labels:

csharp
private void OnFormLoad(object sender, EventArgs e) {
    XYDiagram diagram = (XYDiagram)chartControl1.Diagram;
    AxisLabelFormatter formatter = new AxisLabelFormatter();
    diagram.AxisX.Label.Formatter = formatter;
    diagram.AxisY.Label.Formatter = formatter;
}
public class AxisLabelFormatter : IAxisLabelFormatter {
    public string GetAxisLabelText(object axisValue) {
        return Convert.ToString((double)axisValue / 1000);
    }
}
vb
Private Sub OnFormLoad(ByVal sender As Object, ByVal e As EventArgs)
    Dim diagram As XYDiagram = CType(chartControl1.Diagram, XYDiagram)
    Dim formatter = New AxisLabelFormatter
    diagram.AxisX.Label.Formatter = formatter
    diagram.AxisY.Label.Formatter = formatter
End Sub

Public Class AxisLabelFormatter
    Inherits IAxisLabelFormatter

    Public Function GetAxisLabelText(ByVal axisValue As Object) As String
        Return Convert.ToString(CDbl(axisValue) / 1000)
    End Function
End Class

How to: Format Date-Time Axis Labels

This example shows how to format the date-time axis labels as follows:

A formatter applies to the x-axis’s labels:

A formatter does not apply to axis labels:

csharp
private void Form1_Load(object sender, EventArgs e) {

    XYDiagram diagram = chartControl.Diagram as XYDiagram;

    // Configure scale options.
    DateTimeScaleOptions dateTimeScaleOptions = diagram.AxisX.DateTimeScaleOptions;          
    dateTimeScaleOptions.ScaleMode = ScaleMode.Continuous;
    dateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Day;
    dateTimeScaleOptions.GridSpacing = 7;
    dateTimeScaleOptions.WorkdaysOnly = true;

    // Apply a custom format to axis labels.
    AxisLabel axisLabel = diagram.AxisX.Label;
    axisLabel.Formatter = new AxisLabelFormatter();

}
public class AxisLabelFormatter : IAxisLabelFormatter {
    public string GetAxisLabelText(object axisValue) {
        DateTime value = (DateTime)axisValue;
        return ((value.Day >= 1) && (value.Day <= 7)) ? $"{value.ToString("MMM, d")}" : $"{value.Day}";
    }
}
vb
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)

    Dim diagram As XYDiagram = TryCast(chartControl.Diagram, XYDiagram)

    ' Configure scale options.
    Dim dateTimeScaleOptions As DateTimeScaleOptions = diagram.AxisX.DateTimeScaleOptions
    dateTimeScaleOptions.ScaleMode = ScaleMode.Continuous
    dateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Day
    dateTimeScaleOptions.GridSpacing = 7
    dateTimeScaleOptions.WorkdaysOnly = True

    ' Apply a custom format to axis labels.
    Dim axisLabel As AxisLabel = diagram.AxisX.Label
    axisLabel.Formatter = New AxisLabelFormatter

End Sub

Public Class AxisLabelFormatter
    Inherits IAxisLabelFormatter

    Public Function GetAxisLabelText(ByVal axisValue As Object) As String
        Dim value As Date = axisValue
        Return If(value.Day >= 1 AndAlso value.Day <= 7, $"{value.ToString("MMM, d")}", $"{value.Day}")
    End Function
End Class

See Also

IAxisLabelFormatter Members

DevExpress.XtraCharts Namespace