SeriesTemplateSummaryAdapter Class
An adapter that creates series based on a template and summarizes series points.
Namespace: DevExpress.XtraCharts
Assembly: DevExpress.XtraCharts.v24.1.dll
NuGet Package: DevExpress.Charts
Declaration
[TypeConverter(typeof(LocalizableExpandableObjectTypeConverter))]
public class SeriesTemplateSummaryAdapter :
SeriesTemplateAdapter,
ISupportIndexAdapter<ISeries>,
ISummaryAdapter,
ISummaryOptionsOwner
Remarks
The SeriesTemplateSummaryAdapter allows you to create multiple series based on a template and summarize values of points with the same arguments.
Depending on the argument axis scale type, use one of the following properties to define scale-specific options:
The SummaryOptionsBase.SummaryFunction property allows you to specify the function used to summarize points. The following functions are available:
- MIN([Data_Member_Name])
- MAX([Data_Member_Name])
- AVERAGE([Data_Member_Name])
- SUM([Data_Member_Name])
- COUNT()
Some functions require you to specify the data member name (the Data_Member_Name parameter) that supplies values to summarize.
To create a new function, use the ChartControl.RegisterSummaryFunction method.
Example
The following example shows how to create multiple series based on a template and aggregate their points with equal arguments:
- Define the chart control’s DataSource property.
- Create a
SeriesTemplateSummaryAdapter
object. - Populate the adapter’s DataMembers collection. You should specify data members that contain point arguments, point values, and values that identify series.
- Specify the SummaryOptionsBase.SummaryFunction property to select a function used to summarize values.
- Use the SeriesTemplate.DataAdapter property to assign the adapter to the chart.
using DevExpress.XtraCharts;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace SummaryChart {
public partial class Form1 : Form {
private void OnLoad(object sender, EventArgs e) {
// Specify the chart data source.
chart.DataSource = DataPoint.GetDataPoints();
//Create a summary data adapter.
SeriesTemplateSummaryAdapter dataAdapter = new SeriesTemplateSummaryAdapter();
// Create a data member that defines arguments.
dataAdapter.DataMembers.Add(new DataMember {
DataMemberType = ChartDataMemberType.Argument,
ColumnName = "Argument",
ScaleType = ScaleType.Numerical
});
// Create a data member that defines values.
dataAdapter.DataMembers.Add(new DataMember {
DataMemberType = ChartDataMemberType.Value,
ColumnName = "Value",
ScaleType = ScaleType.Numerical
});
// Create a data member that identifies data series.
dataAdapter.DataMembers.Add(new DataMember {
DataMemberType = ChartDataMemberType.Series,
ColumnName = "Name",
ScaleType = ScaleType.Qualitative
});
// Specify a summary function.
dataAdapter.NumericSummaryOptions.SummaryFunction = "AVERAGE([Value])";
// Assign the data adapter to the chart.
chart.SeriesTemplate.DataAdapter = dataAdapter;
}
public class DataPoint {
public double Argument { get; set; }
public double Value { get; set; }
public string Name { get; set; }
public static List<DataPoint> GetDataPoints() {
return new List<DataPoint> {
new DataPoint { Argument= 1, Value = 853D, Name = "Series 2"},
new DataPoint { Argument= 1, Value = 321D, Name = "Series 2"},
new DataPoint { Argument= 1, Value = 655D, Name = "Series 1"},
new DataPoint { Argument= 1, Value = 1325D, Name = "Series 1"},
new DataPoint { Argument= 2, Value = 653D, Name = "Series 2"},
new DataPoint { Argument= 2, Value = 172D, Name = "Series 2"},
new DataPoint { Argument= 2, Value = 255D, Name = "Series 1"},
new DataPoint { Argument= 3, Value = 981D, Name = "Series 1"},
new DataPoint { Argument= 3, Value = 913D, Name = "Series 2"},
new DataPoint { Argument= 4, Value = 123D, Name = "Series 1"},
new DataPoint { Argument= 4, Value = 1011D, Name = "Series 1"},
new DataPoint { Argument= 4, Value = 359D, Name = "Series 2"},
new DataPoint { Argument= 4, Value = 721D, Name = "Series 2"},
new DataPoint { Argument= 4, Value = 565D, Name = "Series 1"}
};
}
}
}
}