ViewXY
XY charts (ViewXY) allow two-dimensional data visualization in different ways and formats. All series are bound to axis value ranges.
There are 10 series, which could be considered as 'line-series'. Which one is best for your application depends on required features. The crosstable of 'line-series' and supported features could be found below.
Series have AssignXAxisIndex and AssignYAxisIndex property for assigning the X and Y axis. In code, assign the X and Y axis with series constructor parameter, alternatively.
If Axis is deleted/disposed, then Series assigned to that axis needs reassigned. When axis disposed, chart automatically (internally) may set series AssignXAxisIndex and AssignYAxisIndex properties to 0 or -1.
SampleDataBlockSeries
SampleDataBlockSeries is a version of SampleDataSeries, fully optimized for real-time/streaming applications. It offers the best possible performance with least CPU and memory consumption, allowing rendering extremely high number of data points simultaneously. As the name of the series suggests, the data is internally managed as blocks, which in turn are individually memory-managed. This removes the need for extremely large continuous linear memory. SampleDataBlockSeries is the optimal series type for real-time/streaming medical monitoring applications, such as ECG/EKG, EEG, industrial monitoring applications, telemetry, and waveform vibration monitoring.

More details about SampleDataBlockSeries could be found on this page.
SampleDataSeries
SampleDataSeries is the line series used for presenting sampled signal data (discrete signal data, fixed interval progressing data). This is generally used in real-time Digital signal processing (DSP) applications. The digital signal would be represented as a sequence of numbers that sample a continuous variable in time or space. Data could be visualized as line, as points or both.

More details about SampleDataSeries could be found on this page.
PointLineSeries
PointLineSeries is for variable interval progressing data. A PointLineSeries can present a simple line, points (scatter) or both as a point-line. PointLineSeries has more features than any other line-series, but it maybe not as well optimized for memory of CPU usage.

More details about PointLineSeries could be found on this page.
LiteLineSeries
LiteLineSeries is a version of PointLineSeries, that is optimized for much faster performance. It works similarly to PointLineSeries but has less configuration options. LiteLineSeries draws only the line between the data points but not the points themselves. Furthermore, it has only Color and Width properties to adjust the series appearance. LiteLineSeries expects data points to be in progressive order.

More details about LiteLineSeries could be found on this page.
FreeformPointLineSeries
A FreeformPointLineSeries can present a simple line, points (scatter) or both as a point line. FreeformPointLineSeries is for arbitrary data - allows drawing line/point to any direction from previous point. All line and point formatting options from PointLineSeries apply.

More details about FreeformPointLineSeries could be found on this page.
LiteFreeformLineSeries
LiteFreeformLineSeries is a lighter version of FreeformPointLineSeries, that is optimized for much faster performance. However, compared to the regular series, it has less configuration options. LiteFreeformLineSeries draws only the line between the data points but not the points themselves and therefore is not suitable for scatter plots. Furthermore, it has only Color and Width properties to adjust the series appearance. LiteFreeformLineSeries allows data points to be placed freely. In other words, the points don’t have to be in progressive order.

More details about LiteFreeformLineSeries could be found on this page.
DigitalLineSeries
DigitalLineSeries is a specific type of line series, which displays a line alternating between two Y-values, for example 0 and 1. It is fully optimized for performance and uses the least amount of memory of all series types. DigitalLineSeries has fewer configuration option compared to many other series, as it draws only the line between the data points but not the points themselves. Furthermore, it has only Color and Width properties to adjust the series appearance.

More details about DigitalLineSeries could be found on this page.
LineCollection
A LineCollection is a collection of line segments. Each line segment is a line going from point A to B. One LineCollection can contain thousands of line segments. LineCollection is extremely efficient in rendering of thousands of distinct line segments, in contrast to PointLineSeries, FreeformPointLineSeries or SampleDataSeries. However, PointLineSeries, FreeformPointLineSeries or SampleDataSeries are more efficient in rendering continuous polylines of millions of points.

More details about LineCollection could be found on this page.
HighLowSeries
HighLowSeries presents data as filled area between high and low values. The fill can be set with Fill property and its sub-properties. Define the line style with LineStyleHigh and LineStyleLow properties. If the lines should not be visible, set LineVisibleHigh = false, and LineVisibleLow = false, respectively. Define the point style with PointStyleHigh and PointStyleLow properties. If the points should not be shown, set PointsVisibleHigh = false, PointsVisibleLow = false.
When the high value of the data is less than its Low value, reverse fill is applied in that part. Edit the reversed fill with ReverseFill property.

Range of data between 2004 and 2011 is reversed: high value is < low value.
More details about HighLowSeries could be found on this page.
AreaSeries
AreaSeries presents data as filled area between base level and values. AreaSeries is quite similar to HighLowSeries. Set base level with BaseValue property. Set the preferred fill style with Fill property.

Three area series all having BaseValue = 0.
More details about AreaSeries could be found on this page.
Which line series should be used?
Choosing the line series depends on three main questions: how many data points should be shown simultaneously (i.e. performance), what is the nature of the data points (i.e are points in progressive order, or even at fixed interval), and how the line should look visually.
The summary table of features available for each series type is below. For more in detail discussion about those features and what they check Line-series comparison

Table of all features available for each series type
BarSeries
BarSeries allows displaying data in horizontal or vertical bars. Use Values array property to store the values of a bar series. Add values with AddValue(…) method. Update an existing value by given value index with SetValue(…) method. Use BarViewOptions property of the chart.ViewXY to control how the bars are displayed.

Bars series, vertical and horizontal.
More details about BarSeries could be found on this page.
PolygonSeries
PolygonSeries renders a fill and a borderline, by given border path. PolygonSeries has an automatic path closing feature. Set the filling preferences in Fill property. Use Border property of PolygonSeries to set the border line style.
Set IntersectionsAllowed = True to enable polygon path to intersect itself. Without this property enabled, when intersecting the path, the fill will appear all garbled up. By default, the property is False for performance reasons, as detecting and rendering intersection cases is heavy.

Several polygons.
More details about PolygonSeries could be found on this page.
IntensityGridSeries (also called Heatmap)
IntensityGridSeries allows visualizing M x N array of nodes, colored by assigned value-range palette. The colors between nodes are interpolated. IntensityGridSeries is an evenly-spaced, rectangular series in X and Y dimension. This series allows rendering contour lines, contour line labels, and wireframe as well.
By enabling PixelRendering property, the nodes are rendered as pixels, or rectangles. This is a very high-performance rendering style e.g. for real-time high-resolution thermal imaging applications. Note that when this rendering mode is selected, many other options are disabled, such as contour lines, wireframe and interpolation. If logarithmic axes are used, the logarithmic transformation is only applied to corners of the series, the pixels in the bitmap remain evenly spaced and no logarithmic transformation is applied to them.

IntensityGrid series showing a heat map presentation. Legend box shows the value-range color palette.
More details about IntensityGridSeries could be found on this page.
IntensityMeshSeries (also called Heatmap)
IntensityMeshSeries is similar to IntensityGridSeries. The biggest difference is that series nodes can be positioned arbitrarily in X-Y space. In other words, the series does not have to be rectangular. Wireframe lines can be set visible with WireframeType property, and nodes can be shown by setting ShowNodes true.

IntensityMeshSeries with freely positioned X and Y values for each node. WireframeType = None and ShowNodes = false.
More details about IntensityMeshSeries could be found on this page.
Persistent series rendering layers
PersistentSeriesRenderingLayer can be used for extremely fast rendering of repetitive line/points data, or line/points/high-low/area fill data that is plotted in same X and Y range over and over again. It is kind of a bitmap, that allows adding rendering data incrementally in it. It keeps the graphics until cleared by command. This way, each update round, only one series needs to be rendered on the layer, followed by the layer rendering on the screen. CPU load or memory footprint doesn’t rise. If existing data should be faded away gradually, it can be done by multiplying the alpha of the bitmap pixels.
It is possible to create as many PersistentSeriesRenderingLayer objects as needed, and any count of series can be rendered on each of them, any update round.

Persistent layer shows historical traces, in green color. MultiplyAlpha method is called before updating new data in the rendering layer making the oldest traces fade away.
More details about PersistentSeriesRenderingLayer could be found on this page.
Persistent series rendering intensity layers
PersistentSeriesRenderingIntensityLayer allows collecting traces into a layer and coloring it by the hit count per pixel. The coloring is made by using a value-range palette. The traces can be used with the same series types as in PersistentSeriesRenderingLayer (see here). They are very much similar, main difference being the coloring. When rendering a trace in a location of a pixel again with second rendering call, the intensity of it grows, increasing its value in the value-range palette.

Persistent intensity layer highlights areas of concentrated activity, in this case in yellow and red.
More details about PersistentSeriesRenderingIntensityLayer could be found on this page.
StockSeries
StockSeries allow stock exchange data visualization in candle-stick or stock bars format. Several stock series can be added in the same chart by adding multiple StockSeries objects in StockSeries list property. Select the style with Style property. The options are Bars, CandleStick and OptimizedCandleStick.

StockSeries with CandleStick Style. A light blue PointLineSeries is set to go through all Close values.
More details about StockSeries could be found on this page.
Automatic series title placement
Each XY series has title (by default hidden), for which style and position could be modified through properties (series.Title. propertyName). Enabling property ViewXY. TitlesAutoPlacement. Enabled informs chart that series’ Title location should be calculated automatically in order to avoid multiple titles overlapping each other. Title position could be locked at current X-Y value by enabling series.Title. LockAutoPosition property. Auto positioning is reset with ViewXY. TitlesAutoPlacement. Reset() method.
To see TitlesAutoPlacement used in example, check ExampleMinLog from our Demo.