C# 實時曲線圖


示例目的:使用時間器添加曲線圖的點,以達到實時描繪曲線圖的效果。X軸顯示時分,Y軸顯示0-20的隨機數

1. 必須安裝DevExpress控件,沒有安裝的朋友可以使用下面的雲盤鏈接下載安裝

鏈接:https://pan.baidu.com/s/1nXPoRsIr_RR95GHtuN4LJg

提取碼:yh98

 

2. 新建Windows窗體應用程序,直接在工具箱搜索ChartControl並使用改組件

 

3. 添加曲線圖,並設置其屬性

當拖拉該組件到窗體設計頁面時,會彈出【Chart Designer】,可在此處添加曲線圖,並設置其基本屬性

Series Collection:在此處添加曲線圖,實例添加的是Line Series下的Line曲線

設置基本屬性:

LabelsVisibility:顯示點對應Y軸的數值

MARKER OPTIONS:線上的實心點設置

APPEARANCE:線的設置

 

4. 開始實現功能

 1 using DevExpress.Utils;
 2 using DevExpress.XtraCharts;
 3 using System;
 4 using System.Windows.Forms;
 5  
 6 namespace ChartControl
 7 {
 8     public partial class Form1 : Form
 9     {
10         private const int _pointsCount = 15;  //固定保留15個點
11         private int _hour = 0;
12         private int _minute = 0;
13         private SeriesPointCollection _points;
14  
15         public Form1()
16         {
17             InitializeComponent();
18             var series = chartControl1.Series[0];
19             _points = series.Points;
20  
21             #region 常用屬性,可按需求設置
22             series.ArgumentScaleType = ScaleType.Qualitative;     //使用自定義時間
23             //chartControl1.ToolTipEnabled = DefaultBoolean.True; //顯示曲線端點值
24             //chartControl1.ToolTipOptions.ShowForSeries = true;  //顯示曲線名稱
25             //chartControl1.CrosshairEnabled = DefaultBoolean.False;//隱藏十字線
26  
27             //XYDiagram diagram = (XYDiagram)chartControl1.Diagram;
28             ////設定曲線圖縮放
29             //diagram.EnableAxisXScrolling = true;
30             //diagram.EnableAxisXZooming = true;
31             //diagram.EnableAxisYScrolling = true;
32             //diagram.EnableAxisYZooming = true;
33             ////設定曲線圖視野,注意要先設置WholeRange
34             //diagram.AxisY.WholeRange.SetMinMaxValues(-10, 30);
35             //diagram.AxisY.VisualRange.SetMinMaxValues(-10, 30);
36             #endregion
37         }
38  
39         private void timer1_Tick(object sender, EventArgs e)
40         {
41             if (_minute >= 60)
42             {
43                 _hour += 1;
44                 _minute = 0;
45             }
46             if (_hour == 24)
47             {
48                 _hour = 0;
49             }
50             if (_points.Count >= _pointsCount)
51             {
52                 _points.RemoveAt(0);
53             }
54             var argument = $"{_hour.ToString().PadLeft(2, '0')}:{_minute.ToString().PadLeft(2, '0')}";  // X軸數據
55             var value = Math.Round(new Random().NextDouble() * 20, 2);  // Y軸數據
56             var seriesPoint = new SeriesPoint(argument, value);
57             _points.Add(seriesPoint);
58             _minute += 1;
59         }
60     }
61 }

 

 

5. 啟用計時器,查看效果

 

 

有其他需求可以查看控件屬性進行修改,我在這里就不詳述了。

實例源碼鏈接:https://github.com/Jcanc/ChartControl


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM