Skip to main content

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.v24.2.dll

Declaration

public interface IAxisLabelFormatter :
    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.

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);
    }
}

How to: Format Date-Time Axis Labels

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

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}";
    }
}
See Also