Skip to main content
A newer version of this page is available. .

SeriesBase Class

A base class for the SeriesTemplate and Series classes.

Namespace: DevExpress.XtraCharts

Assembly: DevExpress.XtraCharts.v20.2.dll

Declaration

public class SeriesBase :
    ChartElement,
    ISeriesBase,
    ISeriesDataAdapter,
    ISeriesPointFactory,
    IHitTest,
    IXtraSupportCreateContentPropertyValue,
    IXtraSupportDeserializeCollectionItem,
    ITopNOptions,
    IPointsFilterOptions,
    ICheckableLegendItem,
    ILegendItem,
    IFilteredComponent,
    IFilteredComponentBase,
    IFilteringUIClient,
    IFilterCriteriaBindingAware

The following members accept/return SeriesBase objects:

Library Related API Members
Cross-Platform Class Library ChartHitInfo.Series
WinForms Controls SnapChart.SeriesTemplate

Remarks

The SeriesBase class contains the core functionality of the series objects. Use the ChartControl.SeriesTemplate property to access these settings if you bind a Chart Control to a data source. When you add series manually, Series objects contain inherited API members from the SeriesBase class.

The table below lists the main API members:

Member

Description

SeriesBase.View

Contains the series view settings.

SeriesBase.ChangeView

Changes the series view type.

SeriesBase.ArgumentDataMember

Gets or sets the data field name that contains series point arguments.

SeriesBase.ValueDataMembers

Gets a collection of data field names that contain series point values.

SeriesBase.ArgumentScaleType, SeriesBase.ValueScaleType

Specify the scale type for axes.

SeriesBase.FilterCriteria, SeriesBase.FilterString

Filter the series data.

SeriesBase.Label

Defines series label settings.

SeriesBase.SeriesPointsSorting, SeriesBase.SeriesPointsSortingKey

Specify sort settings.

SeriesBase.ShowInLegend

Specifies whether the chart shows the series in a legend.

SeriesBase.Visible

Defines whether the series is visible.

Example

This example simultaneously configures settings for template series and a series added to the chart manually.

Customized series

View Example

Follow the steps below to implement this scenario:

using DevExpress.XtraCharts;
using System;
using System.Data;
using System.Windows.Forms;
using DevExpress.Utils;

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

        private void Form1_Load(object sender, EventArgs e) {
            ChartControl chart = new ChartControl();
            // Hide the legend.
            chart.Legend.Visibility = DefaultBoolean.False;

            // Define the series template for multiple series.
            chart.DataSource = GetSeriesTemplateData();
            chart.SeriesDataMember = "Region";
            chart.SeriesTemplate.View = new LineSeriesView();

            ConfigureSeries(chart.SeriesTemplate);

            // Add a single series.
            Series series = new Series("Australia", ViewType.Area);
            series.DataSource = GetSeriesData();
            chart.Series.Add(series);

            ConfigureSeries(series);

            chart.Dock = DockStyle.Fill;
            this.Controls.Add(chart);
        }

        private void ConfigureSeries(SeriesBase series) {
            series.ArgumentDataMember = "Year";
            series.ValueDataMembers.AddRange(new string[] { "Sales" });
            series.ArgumentScaleType= ScaleType.Qualitative;
            series.ValueScaleType= ScaleType.Numerical;
            series.LabelsVisibility = DefaultBoolean.True;
            series.Label.TextPattern = "{A}: {V:F2}";
        }

        internal static DataTable GetSeriesTemplateData() {
            DataTable table = new DataTable();
            table.Columns.AddRange(new DataColumn[] { new DataColumn("Region", typeof(string)),
                                                      new DataColumn("Year", typeof(int)),
                                                      new DataColumn("Sales", typeof(decimal)) });
            table.Rows.Add("Asia", 2016, 3.9341D);
            table.Rows.Add("Asia", 2017, 4.2372D);
            table.Rows.Add("Asia", 2018, 4.7685D);
            table.Rows.Add("Asia", 2019, 5.2890D);

            table.Rows.Add("Europe", 2016, 2.7891D);
            table.Rows.Add("Europe", 2017, 3.0884D);
            table.Rows.Add("Europe", 2018, 3.3579D);
            table.Rows.Add("Europe", 2019, 3.7257D);

            table.Rows.Add("North America", 2016, 3.2566D);
            table.Rows.Add("North America", 2017, 3.4855D);
            table.Rows.Add("North America", 2018, 3.7477D);
            table.Rows.Add("North America", 2019, 4.1825D);

            return table;
        }

        internal static DataTable GetSeriesData() {
            DataTable table = new DataTable();
            table.Columns.AddRange(new DataColumn[] { new DataColumn("Region", typeof(string)),
                                                      new DataColumn("Year", typeof(int)),
                                                      new DataColumn("Sales", typeof(decimal)) });
            table.Rows.Add("Australia", 2016, 1.5632D);
            table.Rows.Add("Australia", 2017, 1.7871D);
            table.Rows.Add("Australia", 2018, 1.9576D);
            table.Rows.Add("Australia", 2019, 2.2727D);

            return table;
        }
    }
}

The following code snippets (auto-collected from DevExpress Examples) contain references to the SeriesBase class.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also