Common Series Functionality
In This Topic
In NOV Chart for .NET data is grouped into series, which in turn are added to the chart Series collection. Each series contains data and properties that control how this data is visualized - for example, the axes on which it will scale, the default fill of the data points in the series, how data labels are formatted etc.
All series derive directly or indirectly from the NSeries base class. The following sections describe the functionality exposed by this class.
Series Data
Each series in the control has an associated property called DataPoints which gives you access to the data points stored in the series. The following code snippet shows how to add data points to a series:
C# |
Copy Code
|
NBarSeries bar = new NBarSeries();
bar.DataPoints.Add(new NBarDataPoint(10));
bar.DataPoints.Add(new NBarDataPoint(20));
bar.DataPoints.Add(new NBarDataPoint(30));
chart.Series.Add(bar);
|
The type of the data point is specific to the type of the series - for example bar series support data points of type NBarDataPoint, line series support data points of type NLineDataPoint, and so on.
XY and XYZ Scatter Series
All Cartesian and Polar charts series have a property called UseXValues which instructs the series to use the XValue of the data points added to the series instead of its category index. Some Cartesian series that are supported in 3D also have a property called UseZValues, which instructs the series to use the ZValue of the data points instead of their default Z value (which is their order in the series collection). The following code snippets show how to create a XY and XYZ scatter line charts:
C# |
Copy Code
|
NLineSeries line = new NLineSeries();
chart.Series.Add(line);
line.UseXValues = true;
line.DataPoints.Add(new NLineDataPoint(0, 0));
line.DataPoints.Add(new NLineDataPoint(10, 10));
|
C# |
Copy Code
|
NLineSeries line = new NLineSeries();
chart.Series.Add(line);
line.UseXValues = true;
line.UseZValues = true;
line.DataPoints.Add(new NLineDataPoint(0, 0, 0));
line.DataPoints.Add(new NLineDataPoint(10, 10, 10));
|
Default Appearance
All series have three properties - Fill, Stroke, and Shadow that control the default appearance of the data points contained inside that series. The following code snippet shows how to change the color and stroke of all data points inside a series:
C# |
Copy Code
|
NBarSeries bar = new NBarSeries();
chart.Series.Add(bar);
bar.Fill = new NColorFill(NColor.Blue);
bar.Stroke = new NStroke(2, NColor.DarkBlue);
bar.DataPoints.Add(new NBarDataPoint(10.0));
bar.DataPoints.Add(new NBarDataPoint(20.0));
bar.DataPoints.Add(new NBarDataPoint(30.0));
chart.Series.Add(bar);
|
Name
The series name appears on the legend when it displays information about it. It is accessible from the Name property:
C# |
Copy Code
|
someSeries.Name = "Series Name";
|
Visibility
The visibility of the series is controlled from the Visible property. By default, this property is set to true. The following code makes the series invisible:
C# |
Copy Code
|
someSeries.Visible = false;
|
When the series is invisible it does not affect the ranges of the axes it scales on.
Legend View
Each series can display information on the legend attached to the chart. The information displayed on the legend is controlled by the NSeriesLegendView object attached to the series. This object is exposed from the LegendView property. The following code snippet shows how to configure the series to display legend items per each data point (the default setting is to display information about the series):
C# |
Copy Code
|
bar.LegendView.Mode = ENSeriesLegendMode.DataPoints;
|
The following table lists the available options:
ENSeriesLegendMode |
Description |
None |
The series is not represented in the legend. |
Series |
The series is represented in the legend by one series-defined entry (usually a glyph such as a bar, or line and the series Name). |
SeriesVisibility |
The series is represented in the legend by one series-defined entry (checkbox and the series Name) which also controls its visibility. |
DataPoints |
The series adds its data points to the legend. |
SeriesLogic |
The series adds series-specific information in the legend describing the logic it uses. |
Following is a list of the other properties of the NSeriesLegendViewObject:
The ItemMargins, ShapeMargins, and TextMargins properties control the margins applied on legend items, legend item mark shapes, and legend item texts.
The Legend property allows you to specify a legend for the series which differs from the default one specified for the chart that contains the series.
The Order property allows you to control whether legend items produced by the series will be appended or prepended to the content of the legend.
The MarkSize property controls the size of the legend item marks.
The Format property controls the format used to generate legend items. For more information see the Label Formatting topic.
TextStyle, MaxTextWidth, and TextWrapMode properties control the text style and wrapping of text when displayed on the legend.
OriginIndex
The series has a property called OriginIndex which allows you to specify which data point is treated as the first data point in the series. This property is commonly used in real-time charts that display a window of data. In such charts, it is common to remove the first data point and add a new one at the end of the data point collection of the series. This results in memory shifting which is CPU intensive. To avoid this shift you can use the OriginIndex property. The following code snippet shows how to take advantage of this property:
C# |
Copy Code
|
NLineSeries lineSeries;
int dataPointCount = 20;
if (lineSeries.DataPoints.Count < dataPointCount)
{
lineSeries.DataPoints.Add(new NLineDataPoint(newValue));
}
else
{
lineSeries.DataPoints[lineSeries.OriginIndex].Value = newValue;
lineSeries.OriginIndex++;
if (lineSeries.OriginIndex >= lineSeries.DataPoints.Count)
{
lineSeries.OriginIndex = 0;
}
}
|
The above code example allows a maximum of 20 data points in the series. When the number of data points exceeds 20 it shifts the Origin index and modifies the already existing data points values instead of adding and removing data points from the collection.
See Also