Skip to main content

ScaleType Enum

Contains the values used to specify the scale type for the argument and value data of series points.

Namespace: DevExpress.XtraCharts

Assembly: DevExpress.XtraCharts.v24.1.dll

NuGet Package: DevExpress.Charts

Declaration

[ResourceFinder(typeof(XtraChartsResFinder), "PropertyNamesRes")]
[TypeConverter(typeof(ArgumentScaleTypeTypeConverter))]
public enum ScaleType

Members

Name Description
Qualitative

Identifies the Qualitative data scale. This means that data provided for the Series.Points will be treated as qualitative values and will be shown on the axis as textual representations (e.g., A, B, and C).

Numerical

Identifies the Numerical data scale. This means that data provided for the Series.Points will be treated as numerical values and will be shown on the axis as numbers (e.g., 100, 200, and 300). Note that in this case the AxisBase.NumericOptions property is used to define the output format of numerical values shown on the axis.

DateTime

Identifies the DateTime data scale. This means that data provided for the Series.Points will be treated as DateTime values and will be shown on the axis as DateTime values (e.g., January, 2003, January, 2004, and January, 2005). Note that in this case the AxisBase.DateTimeOptions property is used to define the output format of DateTime values shown on the axis.

TimeSpan

Identifies the TimeSpan data scale. The data that you provide for the Series.Points will be treated and shown on the axis as TimeSpan values (for example, 00:00:00, 00:00:01, 00:00:02). Note that in this case, the axis’s TimeSpanScaleOptions property allows you to specify the scale-related settings. To define the output format of TimeSpan values shown on the axis, use the AxisBase.Label‘s TextPattern property.

Auto

The scale type is automatically determined according to the real type of underlying data.

Remarks

The values listed by the ScaleType enumerator are used to set the SeriesBase.ArgumentScaleType and SeriesBase.ValueScaleType properties.

Example

This example demonstrates how an axis’ date-time and numeric options can be customized, depending on the ScaleType defined for a series’ arguments and values.

using System;
using System.Windows.Forms;
using DevExpress.XtraCharts;
// ...

namespace FormatAxisLabels {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {
            // Create an empty chart.
            ChartControl chartControl1 = new ChartControl();

            // Create a bar series and add points to it.
            Series series1 = new Series("Series 1", ViewType.Bar);
            series1.Points.Add(new SeriesPoint(new DateTime(2009, 1, 1), new double[] { 26.25 }));
            series1.Points.Add(new SeriesPoint(new DateTime(2009, 2, 1), new double[] { 16.52 }));
            series1.Points.Add(new SeriesPoint(new DateTime(2009, 3, 1), new double[] { 22.21 }));
            series1.Points.Add(new SeriesPoint(new DateTime(2009, 4, 1), new double[] { 15.35 }));
            series1.Points.Add(new SeriesPoint(new DateTime(2009, 5, 1), new double[] { 24.15 }));

            // Add the series to the chart.
            chartControl1.Series.Add(series1);

            // Hide the legend (if necessary).
            chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;

            // Set the scale type for the series' arguments and values.
            series1.ArgumentScaleType = ScaleType.DateTime;
            series1.ValueScaleType = ScaleType.Numerical;

            // Cast the chart's diagram to the XYDiagram type, to access its axes.
            XYDiagram diagram = chartControl1.Diagram as XYDiagram;

            // Define the date-time measurement unit, to which the beginning of 
            // a diagram's gridlines and labels should be aligned. 
            diagram.AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Day;

            // Define the detail level for date-time values.
            diagram.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;

            // Define the custom date-time format (name of a month) for the axis labels.
            diagram.AxisX.Label.TextPattern = "{V:MMMM}";

            // Since the ValueScaleType of the chart's series is Numerical,
            // it is possible to customize the NumericOptions of Y-axis.
            diagram.AxisY.Label.TextPattern = "{V:C1}";

            // Add a title to the chart (if necessary).
            ChartTitle chartTitle1 = new ChartTitle();
            chartTitle1.Text = "Axis Scale Types";
            chartControl1.Titles.Add(chartTitle1);

            // Add the chart to the form.
            chartControl1.Dock = DockStyle.Fill;
            this.Controls.Add(chartControl1);
        }

    }
}
See Also