Back to Devexpress

How to: Add a Trend Line to a Chart

windowsforms-6176-controls-and-libraries-chart-control-examples-chart-elements-how-to-add-a-trend-line-to-a-chart.md

latest4.8 KB
Original Source

How to: Add a Trend Line to a Chart

  • Nov 13, 2018
  • 3 minutes to read

This example demonstrates how a Trend Line can be added to a series’ collection of indicators at runtime.

View Example

csharp
using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraCharts;
// ...
        private void Form1_Load (object sender, EventArgs e) {
            // Create an empty chart.
            ChartControl stockChart = new ChartControl();

            // Create a stock series, add it to the chart and set its properties.
            Series series1 = new Series("Series 1", ViewType.Stock);
            stockChart.Series.Add(series1);
            series1.ArgumentScaleType = ScaleType.DateTime;
            series1.ValueScaleType = ScaleType.Numerical;

            // Add points to the series.
            series1.Points.Add(new SeriesPoint(new DateTime(1994, 3, 1),
                new object[] { 4.00, 5.00, 5.00, 4.85 }));
            series1.Points.Add(new SeriesPoint(new DateTime(1994, 3, 2),
                new object[] { 6.05, 8.05, 6.05, 7.05 }));
            series1.Points.Add(new SeriesPoint(new DateTime(1994, 3, 3),
                new object[] { 6.25, 8.25, 6.75, 7.15 }));

            // Create and customize a trendline, 
            TrendLine trendline1 = new TrendLine("A Trend");
            trendline1.Point1.Argument = new DateTime(1994, 3, 1);
            trendline1.Point1.ValueLevel = ValueLevel.High;
            trendline1.Point2.Argument = new DateTime(1994, 3, 3);
            trendline1.Point2.ValueLevel = ValueLevel.High;
            trendline1.ExtrapolateToInfinity = false;
            trendline1.Color = Color.Red;
            trendline1.LineStyle.DashStyle = DashStyle.Dash;

            // Cast the view type of the series to the Stock view.
            StockSeriesView myView = ((StockSeriesView)series1.View);

            // Define the Y-axis range.
            myView.AxisY.WholeRange.AlwaysShowZeroLevel = false;

            // Add the trendline to the series collection of indicators.
            myView.Indicators.Add(trendline1);

            // Add the chart to the form.
            stockChart.Dock = DockStyle.Fill;
            this.Controls.Add(stockChart);
        }
vb
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.XtraCharts
' ...
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            ' Create an empty chart.
            Dim stockChart As New ChartControl()

            ' Create a stock series, add it to the chart and set its properties.
            Dim series1 As New Series("Series 1", ViewType.Stock)
            stockChart.Series.Add(series1)
            series1.ArgumentScaleType = ScaleType.DateTime
            series1.ValueScaleType = ScaleType.Numerical

            ' Add points to the series.
            series1.Points.Add(New SeriesPoint(New DateTime(1994, 3, 1), New Object() { 4.00, 5.00, 5.00, 4.85 }))
            series1.Points.Add(New SeriesPoint(New DateTime(1994, 3, 2), New Object() { 6.05, 8.05, 6.05, 7.05 }))
            series1.Points.Add(New SeriesPoint(New DateTime(1994, 3, 3), New Object() { 6.25, 8.25, 6.75, 7.15 }))

            ' Create and customize a trendline, 
            Dim trendline1 As New TrendLine("A Trend")
            trendline1.Point1.Argument = New DateTime(1994, 3, 1)
            trendline1.Point1.ValueLevel = ValueLevel.High
            trendline1.Point2.Argument = New DateTime(1994, 3, 3)
            trendline1.Point2.ValueLevel = ValueLevel.High
            trendline1.ExtrapolateToInfinity = False
            trendline1.Color = Color.Red
            trendline1.LineStyle.DashStyle = DashStyle.Dash

            ' Cast the view type of the series to the Stock view.
            Dim myView As StockSeriesView = (CType(series1.View, StockSeriesView))

            ' Define the Y-axis range.
            myView.AxisY.WholeRange.AlwaysShowZeroLevel = False

            ' Add the trendline to the series collection of indicators.
            myView.Indicators.Add(trendline1)

            ' Add the chart to the form.
            stockChart.Dock = DockStyle.Fill
            Me.Controls.Add(stockChart)
        End Sub

The result is shown in the following image.

See Also

Trend Lines