C#?設(shè)置Chart的X軸為時(shí)間軸???????詳情
前言
將Chart的X軸設(shè)置為時(shí)間軸是一個(gè)說(shuō)簡(jiǎn)單不簡(jiǎn)單的問(wèn)題,說(shuō)難也不難的問(wèn)題,你用過(guò)之后呢就感覺(jué)很容易,你沒(méi)用過(guò)呢,就比較難,所以這個(gè)是很值得我們學(xué)習(xí)的,我看了別的社區(qū)也沒(méi)有具體講,所以我想分享一下,萬(wàn)一我自己忘記了,也可以翻這篇文章去復(fù)習(xí),我們一起來(lái)學(xué)習(xí)一下吧,雖然這篇文章比較簡(jiǎn)單,也是值得學(xué)習(xí)的,創(chuàng)作不易,點(diǎn)贊關(guān)注評(píng)論收藏,謝謝大家啦?。?!
界面設(shè)計(jì)
對(duì)界面的設(shè)計(jì),使用timer定時(shí)器按照每秒循環(huán)生成隨機(jī)數(shù)添加進(jìn)Chart里面,使我們實(shí)現(xiàn)每秒添加值,形成曲線運(yùn)動(dòng),開(kāi)始按鈕是對(duì)于定時(shí)器的控制,然后我們將代碼復(fù)制到我們的項(xiàng)目中對(duì)于chart的折線圖設(shè)置,就可以實(shí)現(xiàn)時(shí)間軸為X軸。注意:雖然我們是有AddXY的方法,但是如果你不設(shè)置X軸就會(huì)出現(xiàn)你添加的時(shí)間是有問(wèn)題的,另外,如果我們要把自己的時(shí)間添加進(jìn)去需要對(duì)時(shí)間進(jìn)行.ToOADate()操作才可以。


效果展示
效果展示就是下圖,最下面的是啟用了系統(tǒng)滾動(dòng)條,樣子有點(diǎn)丑


如果你的時(shí)間不是采用系統(tǒng)時(shí)間添加,可能會(huì)出現(xiàn)添加時(shí)間不進(jìn)去或者出現(xiàn)錯(cuò)誤,如果你想添加你自己的時(shí)間需要對(duì)這個(gè)時(shí)間進(jìn)行“.ToOADate()”操作,datetime.AddSeconds(1).ToOADate(),假設(shè)datetime是你的時(shí)間,AddSeconds(1)是代表在你的datetime的基礎(chǔ)上加一秒,.ToOADate()這是自動(dòng)化日期,類似時(shí)間戳,datetime.ToOADate(),也可直接這樣不用加一秒,就是你的那個(gè)時(shí)間,注意一定要加.ToOADate()?。。?!
代碼邏輯
復(fù)制那段對(duì)于chart的折線圖的設(shè)置,直接用我都有備注,注意:里面有條語(yǔ)句chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last)是關(guān)于滾動(dòng)條視圖的,就是說(shuō)我們的數(shù)據(jù)可以一直往前跑我們可以看得到,實(shí)現(xiàn)數(shù)據(jù)滾動(dòng), 但是建議跟著我那個(gè)if一起用避免報(bào)錯(cuò),代碼如下,你們可以直接復(fù)制。
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坐標(biāo)顯示的個(gè)數(shù)------------控制這個(gè)數(shù)量的大小進(jìn)行縮放 ? ?
? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.IntervalType = DateTimeIntervalType.Seconds;//設(shè)置x軸間隔值單位:秒
? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;//設(shè)置X軸的值的間隔大小
? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = false;//是否在軸末尾顯示標(biāo)記
? ? ? ? ? ?chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";//設(shè)置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;//設(shè)置X軸網(wǎng)格線顏色
? ? ? ? ? ?chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//設(shè)置Y軸網(wǎng)格線顏色
? ? ? ? ? ?chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = false;//關(guān)閉系統(tǒng)的滾動(dòng)條,也可以不關(guān)閉,就可以滑動(dò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);
? ? ? ? ? }
? ? ? }
? }
}到此這篇關(guān)于C# 設(shè)置Chart的X軸為時(shí)間軸詳情的文章就介紹到這了,更多相關(guān)C# 時(shí)間軸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Deflate算法對(duì)文件進(jìn)行壓縮與解壓縮的方法詳解
本篇文章是對(duì)使用Deflate算法對(duì)文件進(jìn)行壓縮和解壓縮的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
c# 根據(jù)NPOI 讀取一個(gè)excel 文件的多個(gè)Sheet
這篇文章主要介紹了c# 根據(jù)NPOI 讀取一個(gè)excel 文件的多個(gè)Sheet,幫助大家更好的利用c#處理excel表格,感興趣的朋友可以了解下2020-12-12
C# PaddleDetection yolo實(shí)現(xiàn)印章檢測(cè)
這篇文章主要為大家詳細(xì)介紹了C#如何結(jié)合PaddleDetection yolo實(shí)現(xiàn)印章檢測(cè),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
如何在UpdatePanel中調(diào)用JS客戶端腳本
本文將介紹如何在UpdatePanel中調(diào)用JS客戶端腳本,需要了解的朋友可以參考下2012-12-12
在類庫(kù)或winform項(xiàng)目中打開(kāi)另一個(gè)winform項(xiàng)目窗體的方法
這篇文章主要介紹了在類庫(kù)或winform項(xiàng)目中打開(kāi)另一個(gè)winform項(xiàng)目窗體的方法,可以實(shí)現(xiàn)Winform項(xiàng)目間窗體的調(diào)用,在進(jìn)行Winform項(xiàng)目開(kāi)發(fā)中非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11

