C#?設置Chart的X軸為時間軸???????詳情
前言
將Chart的X軸設置為時間軸是一個說簡單不簡單的問題,說難也不難的問題,你用過之后呢就感覺很容易,你沒用過呢,就比較難,所以這個是很值得我們學習的,我看了別的社區(qū)也沒有具體講,所以我想分享一下,萬一我自己忘記了,也可以翻這篇文章去復習,我們一起來學習一下吧,雖然這篇文章比較簡單,也是值得學習的,創(chuàng)作不易,點贊關注評論收藏,謝謝大家啦!?。?/p>
界面設計
對界面的設計,使用timer定時器按照每秒循環(huán)生成隨機數(shù)添加進Chart里面,使我們實現(xiàn)每秒添加值,形成曲線運動,開始按鈕是對于定時器的控制,然后我們將代碼復制到我們的項目中對于chart的折線圖設置,就可以實現(xiàn)時間軸為X軸。注意:雖然我們是有AddXY的方法,但是如果你不設置X軸就會出現(xiàn)你添加的時間是有問題的,另外,如果我們要把自己的時間添加進去需要對時間進行.ToOADate()操作才可以。
效果展示
效果展示就是下圖,最下面的是啟用了系統(tǒng)滾動條,樣子有點丑
如果你的時間不是采用系統(tǒng)時間添加,可能會出現(xiàn)添加時間不進去或者出現(xiàn)錯誤,如果你想添加你自己的時間需要對這個時間進行“.ToOADate()”操作,datetime.AddSeconds(1).ToOADate(),假設datetime是你的時間,AddSeconds(1)是代表在你的datetime的基礎上加一秒,.ToOADate()這是自動化日期,類似時間戳,datetime.ToOADate(),也可直接這樣不用加一秒,就是你的那個時間,注意一定要加.ToOADate()?。。。?/p>
代碼邏輯
復制那段對于chart的折線圖的設置,直接用我都有備注,注意:里面有條語句chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last)是關于滾動條視圖的,就是說我們的數(shù)據(jù)可以一直往前跑我們可以看得到,實現(xiàn)數(shù)據(jù)滾動, 但是建議跟著我那個if一起用避免報錯,代碼如下,你們可以直接復制。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; ? namespace IC00test823 { ? ?public partial class Form1 : Form ? { ? ? ? ?public Form1() ? ? ? { ? ? ? ? ? ?InitializeComponent(); ? ? ? } ? ? ? ? ?private void Form1_Load(object sender, EventArgs e) ? ? ? { ? ? ? ? ? ?chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size = 10;//x坐標顯示的個數(shù)------------控制這個數(shù)量的大小進行縮放 ? ? ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.IntervalType = DateTimeIntervalType.Seconds;//設置x軸間隔值單位:秒 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;//設置X軸的值的間隔大小 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = false;//是否在軸末尾顯示標記 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";//設置X軸的數(shù)據(jù)樣式 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Seconds; ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScaleView.SizeType = DateTimeIntervalType.Seconds; //度量單位 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1; ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Seconds; ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Seconds; ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.Enabled = AxisEnabled.True;//將X軸始終展示 ? ? ? ? ? ?chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.True;//將Y軸始終展示 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;//設置X軸網格線顏色 ? ? ? ? ? ?chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//設置Y軸網格線顏色 ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = false;//關閉系統(tǒng)的滾動條,也可以不關閉,就可以滑動 ? ? ? ? ? ?chart1.Series[0].BorderWidth = 2;//線寬 ? ? ? } ? ? ? ?private void button1_Click(object sender, EventArgs e) ? ? ? { ? ? ? ? ? ?timer1.Enabled = !timer1.Enabled; ? ? ? } ? ? ? ?private void timer1_Tick(object sender, EventArgs e) ? ? ? { ? ? ? ? ? ?Random random = new Random(); ? ? ? ? ? ?chart1.Series[0].Points.AddXY(DateTime.Now,random.Next(1,20)); ? ? ? ? ? ?if(chart1.ChartAreas[0].AxisX.ScaleView.Size>0) ? ? ? ? ? { ? ? ? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last); ? ? ? ? ? } ? ? ? } ? } }
到此這篇關于C# 設置Chart的X軸為時間軸詳情的文章就介紹到這了,更多相關C# 時間軸內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
c# 根據(jù)NPOI 讀取一個excel 文件的多個Sheet
這篇文章主要介紹了c# 根據(jù)NPOI 讀取一個excel 文件的多個Sheet,幫助大家更好的利用c#處理excel表格,感興趣的朋友可以了解下2020-12-12C# PaddleDetection yolo實現(xiàn)印章檢測
這篇文章主要為大家詳細介紹了C#如何結合PaddleDetection yolo實現(xiàn)印章檢測,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-11-11在類庫或winform項目中打開另一個winform項目窗體的方法
這篇文章主要介紹了在類庫或winform項目中打開另一個winform項目窗體的方法,可以實現(xiàn)Winform項目間窗體的調用,在進行Winform項目開發(fā)中非常具有實用價值,需要的朋友可以參考下2014-11-11