Skip to main content
All docs
V23.2

ActualScaleType Enum

Lists scale types for series point arguments and values.

Namespace: DevExpress.XtraCharts

Assembly: DevExpress.XtraCharts.v23.2.dll

NuGet Package: DevExpress.Charts

Declaration

[ResourceFinder(typeof(XtraChartsResFinder), "PropertyNamesRes")]
public enum ActualScaleType

Members

Name Description
Qualitative

Identifies the qualitative data scale. This means that data used to create series points is treated as string categories and shown on the axis as string values (for example, A, B, C). This scale type is only available for arguments. Use the AxisXBase.QualitativeScaleOptions property to access settings of an axis with the qualitative scale.

Numerical

Identifies the numeric data scale. This means that data used to create series points is treated as numeric values and shown on the axis as numbers (for example, 100 or 0.5). Use the AxisBase.NumericScaleOptions property to access settings of an axis with the numeric scale. For example, define an axis’s NumericScaleOptions.Label.TextPattern property to specify the display format of axis labels.

DateTime

Identifies the DateTime data scale. This means that data used to create series points is treated as DateTime values and shown on the axis as DateTime values (for example, January, 2003 or 2013/01/07). Use the AxisBase.DateTimeScaleOptions property to access settings of an axis with the date-time scale. For example, define an axis’s DateTimeScaleOptions.Label.TextPattern property to specify the display format of axis labels.

TimeSpan

Identifies the TimeSpan data scale. This means that data used to create series points is treated as TimeSpan values and shown on the axis as TimeSpan values (for example, 00:00:00, 00:00:01, 00:00:02). Use the AxisBase.TimeSpanScaleOptions property to access settings of an axis with the time-span scale. For example, define an axis’ TimeSpanScaleOptions.Label.TextPattern property to specify the display format of axis labels.

Example

How to: Implement a Custom Chart Data Adapter

This example shows how to create an adapter that loads numeric data to the chart:

using DevExpress.XtraCharts;
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace CustomDataAdapter {
    public partial class Form1 : Form {
        const long DataItemCount = 100000;
        const int MaxValue = 100;
        const int MinValue = 80;
        Random rand = new Random();
        public Form1() {
            InitializeComponent();

            Series series = new Series("Series", ViewType.Line);
            chartControl1.Series.Add(series);

            List<DataItem> dataItems = new List<DataItem>();
            for (int i = 0; i < DataItemCount; i++) {
                dataItems.Add(new DataItem(i, rand.NextDouble() * (MaxValue - MinValue) + MaxValue));
            }

            series.DataAdapter = new CustomNumericDataAdapter(dataItems);

            ((XYDiagram)chartControl1.Diagram).AxisY.WholeRange.AlwaysShowZeroLevel = false;

        }
    }
    public class DataItem {
        public double Argument { get; }
        public double Value { get; }
        public DataItem(double argument, double value) {
            Argument = argument;
            Value = value;
        }
    }
    public class CustomNumericDataAdapter : ISeriesAdapter {
        readonly IList<DataItem> items;
        public bool DataSorted => true;
        public int ItemsCount => this.items.Count;
        public CustomNumericDataAdapter(IList<DataItem> items) {
            this.items = items;
        }
        event NotifyChartDataChangedEventHandler IChartDataAdapter.DataChanged {
            add { }
            remove { }
        }
        public object Clone() {
            return this;
        }
        public double GetNumericalValue(int index, ChartDataMemberType dataMember) {
            switch (dataMember) {
                case ChartDataMemberType.Argument: return items[index].Argument;
                case ChartDataMemberType.Value: return items[index].Value;
            }
            return double.NaN;
        }
        public object GetSourceObject(int index) {
            return this.items[index];
        }
        public ActualScaleType GetScaleType(ChartDataMemberType dataMember) {
            return ActualScaleType.Numerical;
        }
        public DateTime GetDateTimeValue(int index, ChartDataMemberType dataMember) {
            throw new NotImplementedException();
        }
        public string GetQualitativeValue(int index, ChartDataMemberType dataMember) {
            throw new NotImplementedException();
        }
        public TimeSpan GetTimeSpanValue(int index, ChartDataMemberType dataMember) {
            throw new NotImplementedException();
        }
        public object GetObjectValue(int index, ChartDataMemberType dataMember) {
            throw new NotImplementedException();
        }
    }
}
See Also