Back to Devexpress

Series Class

wpf-devexpress-dot-xpf-dot-charts-a8bbd2da.md

latest18.1 KB
Original Source

Series Class

Represents the base class for all 2D Series and 3D Series types.

Namespace : DevExpress.Xpf.Charts

Assembly : DevExpress.Xpf.Charts.v25.2.dll

NuGet Package : DevExpress.Wpf.Charts

Declaration

csharp
public abstract class Series :
    ChartElement,
    ISeries,
    ISeriesBase,
    ISeriesPointFactory,
    ISeriesFactory,
    ISeriesView,
    ISeriesDataAdapter,
    ILegendVisible,
    IWeakEventListener,
    IAnimatableElement,
    IWizardDataProvider,
    IInteractiveElement,
    IPatternHolder,
    ISeriesLabelDataProvider,
    IBindingPropertiesSource,
    ISeriesBindingProvider,
    IBindingProvider,
    IFilteredComponent,
    IFilteredComponentBase,
    IPointsFilterOptions,
    ISupportTag,
    ISeriesTemplate
vb
Public MustInherit Class Series
    Inherits ChartElement
    Implements ISeries,
               ISeriesBase,
               ISeriesPointFactory,
               ISeriesFactory,
               ISeriesView,
               ISeriesDataAdapter,
               ILegendVisible,
               IWeakEventListener,
               IAnimatableElement,
               IWizardDataProvider,
               IInteractiveElement,
               IPatternHolder,
               ISeriesLabelDataProvider,
               IBindingPropertiesSource,
               ISeriesBindingProvider,
               IBindingProvider,
               IFilteredComponent,
               IFilteredComponentBase,
               IPointsFilterOptions,
               ISupportTag,
               ISeriesTemplate

The following members return Series objects:

Remarks

The Series class implements general functionality common for all series classes derived from it. Instances of the Series class descendants are available in the SeriesCollection, which is returned by the Diagram.Series property. Note that although series of different types can be represented together in this collection, not all series types are compatible with all diagram types. To learn more on compatibility, refer to the Series Type Compatibility document.

Every series contains series data points, which are either present in its Series.Points collection, or provided from a data source assigned to the Series.DataSource property along with the Series.ArgumentDataMember and Series.ValueDataMember settings. The types of series arguments and values are defined by the Series.ArgumentScaleType and Series.ValueScaleType property values.

For more information about series, refer to the following help topic: Series.

Example

This example shows how to create a 2D Side-by-Side Bar chart.

  1. Create a ChartControl and set its ChartControl.Diagram property to a XYDiagram2D object. Note that the ChartControl.Diagram is a content property. You can declare a diagram in XAML directly after a chart control’s declaration without wrapping it in opening and closing ChartControl.Diagram tags.

  2. Specify the Diagram.SeriesItemsSource property to bind a collection of objects used to generate series.

  3. Use the following API members to configure the x-axis options.

  4. Create a legend and customize its settings. For more information about legends, refer to the following topic: Legends

View Example: Chart for WPF - Create a 2D Side-by-Side Bar Chart

xaml
<Window x:Class="SideBySideBar2DChart.Window1" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
        xmlns:local="clr-namespace:SideBySideBar2DChart"
        Title="Window1" Height="350" Width="620">
    <Window.DataContext>
        <local:ChartViewModel/>
    </Window.DataContext>
    <Grid>
        <dxc:ChartControl Name="chartControl1">
            <dxc:ChartControl.Diagram>
                <dxc:XYDiagram2D SeriesItemsSource="{Binding Data}">
                    <dxc:XYDiagram2D.SeriesItemTemplate>
                        <DataTemplate>
                            <dxc:BarSideBySideSeries2D DisplayName="{Binding Name}" 
                                               DataSource="{Binding Values}"
                                               ArgumentDataMember="Argument"
                                               ValueDataMember="Value" 
                                               BarWidth="0.6">
                                <dxc:BarSideBySideSeries2D.Model>
                                    <dxc:BorderlessSimpleBar2DModel/>
                                </dxc:BarSideBySideSeries2D.Model>
                            </dxc:BarSideBySideSeries2D>
                        </DataTemplate>
                    </dxc:XYDiagram2D.SeriesItemTemplate>
                    <dxc:XYDiagram2D.AxisX>
                        <dxc:AxisX2D>
                            <dxc:AxisX2D.DateTimeScaleOptions>
                                <dxc:ManualDateTimeScaleOptions MeasureUnit="Year" GridAlignment="Year" 
                                                                AutoGrid="False" GridSpacing="1"/>
                            </dxc:AxisX2D.DateTimeScaleOptions>
                        </dxc:AxisX2D>
                    </dxc:XYDiagram2D.AxisX>
                </dxc:XYDiagram2D>
            </dxc:ChartControl.Diagram>
            <dxc:ChartControl.Legends>
                <dxc:Legend HorizontalPosition="Right"/>
            </dxc:ChartControl.Legends>
        </dxc:ChartControl>
    </Grid>
</Window>
csharp
using System;
using System.Collections.ObjectModel;
using System.Windows;
namespace SideBySideBar2DChart {
    public partial class Window1 : Window {
        public Window1() {
            InitializeComponent();
        }
    }
    public class ChartViewModel {
        public ObservableCollection<DataSeries> Data { get; private set; }

        public ChartViewModel() {
            Data = new ObservableCollection<DataSeries> {
                new DataSeries{
                    Name = "DevAV North",
                    Values = new ObservableCollection<DataPoint> {
                        new DataPoint (new DateTime(2013,12,31), 362.5),
                        new DataPoint (new DateTime(2014,12,31), 348.4),
                        new DataPoint (new DateTime(2015,12,31), 279.0),
                        new DataPoint (new DateTime(2016,12,31), 230.9),
                        new DataPoint (new DateTime(2017,12,31), 203.5),
                        new DataPoint (new DateTime(2018,12,31), 197.1)
                    }
                },
                new DataSeries{
                    Name = "DevAV South",
                    Values = new ObservableCollection<DataPoint> {
                        new DataPoint (new DateTime(2013,12,31), 277.0),
                        new DataPoint (new DateTime(2014,12,31), 328.5),
                        new DataPoint (new DateTime(2015,12,31), 297.0),
                        new DataPoint (new DateTime(2016,12,31), 255.3),
                        new DataPoint (new DateTime(2017,12,31), 173.5),
                        new DataPoint (new DateTime(2018,12,31), 131.8)
                    }
                }
            };
        }
        public class DataSeries {
            public string Name { get; set; }
            public ObservableCollection<DataPoint> Values { get; set; }
        }
        public class DataPoint {
            public DateTime Argument { get; set; }
            public double Value { get; set; }
            public DataPoint(DateTime argument, double value) {
                Argument = argument;
                Value = value;
            }
        }
    }
}
vb
Imports System
Imports System.Collections.ObjectModel

Namespace SideBySideBar2DChart
    Public Partial Class Window1
        Inherits Window

        Public Sub New()
            InitializeComponent()
        End Sub
    End Class

    Public Class ChartViewModel
        Private _Data As System.Collections.ObjectModel.ObservableCollection(Of SideBySideBar2DChart.ChartViewModel.DataSeries)

        Public Property Data As ObservableCollection(Of DataSeries)
            Get
                Return _Data
            End Get
            Private Set(ByVal value As ObservableCollection(Of DataSeries))
                _Data = value
            End Set
        End Property

        Public Sub New()
            Data = New ObservableCollection(Of DataSeries) From {
                New DataSeries With {
                    .Name = "DevAV North",
                    .Values = New ObservableCollection(Of DataPoint) From {
                        New DataPoint(New DateTime(2013, 12, 31), 362.5),
                        New DataPoint(New DateTime(2014, 12, 31), 348.4),
                        New DataPoint(New DateTime(2015, 12, 31), 279.0),
                        New DataPoint(New DateTime(2016, 12, 31), 230.9),
                        New DataPoint(New DateTime(2017, 12, 31), 203.5),
                        New DataPoint(New DateTime(2018, 12, 31), 197.1)
                    }
                },
                New DataSeries With {
                    .Name = "DevAV South",
                    .Values = New ObservableCollection(Of DataPoint) From {
                        New DataPoint(New DateTime(2013, 12, 31), 277.0),
                        New DataPoint(New DateTime(2014, 12, 31), 328.5),
                        New DataPoint(New DateTime(2015, 12, 31), 297.0),
                        New DataPoint(New DateTime(2016, 12, 31), 255.3),
                        New DataPoint(New DateTime(2017, 12, 31), 173.5),
                        New DataPoint(New DateTime(2018, 12, 31), 131.8)
                    }
                }
            }
        End Sub

        Public Class DataSeries
            Public Property Name As String
            Public Property Values As ObservableCollection(Of DataPoint)
        End Class

        Public Class DataPoint
            Public Property Argument As Date
            Public Property Value As Double

            Public Sub New(ByVal argument As Date, ByVal value As Double)
                Me.Argument = argument
                Me.Value = value
            End Sub
        End Class
    End Class
End Namespace

Implements

ILegendVisible

Inheritance

Show 77 items

Object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ChartElementBase ChartElement Series FunnelSeries2D

PieSeries

XYSeries

BubbleSeries2D

BubbleSeries3D

AreaStepFullStackedSeries2D

BoxPlotSeries2D

LineStackedSeries2D

LineStepSeries2D

SplineAreaSeries2D

SplineSeries2D

CircularAreaSeries2D

RadarPointSeries2D

RadarRangeAreaSeries2D

RangeAreaSeries2D

RangeBarOverlappedSeries2D

RangeBarSeries2D

RangeBarSideBySideSeries2D

CandleStickSeries2D

CircularLineScatterSeries2D

CircularLineSeries2D

CircularSeriesBase2D

LineFullStackedSeries2D

AreaFullStackedSeries2D

AreaFullStackedSeries3D

AreaSeries2D

AreaSeries3D

AreaStackedSeries2D

AreaStackedSeries3D

AreaStepSeries2D

AreaStepStackedSeries2D

BarFullStackedSeries2D

BarSeries2D

CircularRangeAreaSeries2D

CircularSeries2D

FinancialSeries2D

LineScatterSeries2D

LineSeries2D

MarkerSeries2D

MarkerSeries3D

NestedDonutSeries2D

PieSeries2D

PieSeries3D

PointSeries2D

PointSeries3D

PolarAreaSeries2D

PolarLineScatterSeries2D

PolarLineSeries2D

PolarPointSeries2D

PolarRangeAreaSeries2D

RadarAreaSeries2D

RadarLineScatterSeries2D

RadarLineSeries2D

SegmentSeries2DBase

SplineAreaFullStackedSeries2D

SplineAreaStackedSeries2D

StockSeries2D

WaterfallSeries2D

XYSeries2D

XYSeries3D

BarSeries2DBase

BarSeries3D

BarSideBySideFullStackedSeries2D

BarSideBySideSeries2D

BarSideBySideSeries3D

BarSideBySideStackedSeries2D

BarStackedSeries2D

See Also

Series Members

Series

DevExpress.Xpf.Charts Namespace