C# Legen Sie die X-Achse des Diagramms als Zeitachse fest

Arbeiten Sie zusammen, um gemeinsam zu schaffen und zu wachsen! Dies ist der 25. Tag meiner Teilnahme an der „Nuggets Daily New Plan · August Update Challenge“, klicken Sie hier, um die Details der Veranstaltung anzuzeigen

Vorwort:

Das Festlegen der X-Achse des Diagramms als Zeitachse ist ein Problem, das nicht leicht zu sagen, schwierig oder schwierig ist. Nachdem Sie es verwendet haben, wird es sich sehr einfach anfühlen. Wenn Sie es nicht verwendet haben, wird es schwieriger sein, Das ist also sehr Es lohnt sich zu lernen. Ich habe in anderen Communities nicht darüber gesprochen, also möchte ich es teilen. Falls ich es selbst vergessen sollte, kann ich auch diesen Artikel lesen, um es zu überprüfen. Lass es uns gemeinsam lernen, obwohl dies Artikel ist relativ Er ist einfach und es lohnt sich, ihn zu lernen Er ist nicht einfach zu erstellen Liken, folgen, kommentieren und sammeln, danke an alle! ! !

Hast du stud.webp

Schnittstellen-Design

Verwenden Sie für die Gestaltung der Benutzeroberfläche den Timer Timer, um Zufallszahlen pro Sekunde zu generieren und in das Diagramm einzufügen, sodass wir jede Sekunde Werte hinzufügen und eine Kurvenbewegung bilden können. Der Startknopf ist die Steuerung des Timers. und dann kopieren wir den Code in unsere Die Liniendiagrammeinstellungen für das Diagramm im Projekt können die Zeitachse als X-Achse realisieren. Hinweis: Obwohl wir die AddXY-Methode haben, stellt die hinzugefügte Zeit ein Problem dar, wenn Sie die X-Achse nicht festlegen.Wenn wir unsere eigene Zeit hinzufügen möchten, müssen wir außerdem die Operation .ToOADate() auf der ausführen Zeit.

Bild.png

Bild.png

Zeige Ergebnisse

Die Effektanzeige ist das Bild unten. Das untere ist, dass die System-Bildlaufleiste aktiviert ist. Es sieht ein bisschen hässlich aus. Folgen Sie dem nächsten Artikel des Bloggers und bitten Sie, ihn zu ändern. hahaha

Bild.png

Bild.png

Wenn Ihre Zeit nicht von der Systemzeit hinzugefügt wird, wird die Zeit möglicherweise nicht hinzugefügt oder es tritt ein Fehler auf. Wenn Sie Ihre eigene Zeit hinzufügen möchten, müssen Sie die Operation „.ToOADate()“ für diese Zeit, datetime, ausführen. AddSeconds(1).ToOADate(), vorausgesetzt datetime ist Ihre Zeit, AddSeconds(1) bedeutet das Hinzufügen einer Sekunde zu Ihrer datetime, .ToOADate() ist ein automatisiertes Datum, ähnlich wie timestamp, datetime.ToOADate(), was Sie auch tun können Dies direkt Sie müssen keine Sekunde hinzufügen, es ist Ihre Zeit. Fügen Sie unbedingt .ToOADate() hinzu! ! ! !

Code-Logik

Kopieren Sie die Einstellungen für das Liniendiagramm des Diagramms, und ich habe Notizen zur direkten Verwendung.Hinweis: Es gibt eine Anweisung chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last ) geht es um die Bildlaufleistenansicht, was bedeutet, dass unsere Daten vorwärts laufen können und wir es sehen können, um ein Datenscrollen zu erreichen, aber es wird empfohlen, es mit my if zu verwenden, um Fehler zu vermeiden. Der Code ist wie folgt, Sie können ihn direkt kopieren .

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坐标显示的个数------------控制这个数量的大小进行缩放     
            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轴的数据样式
            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;//关闭系统的滚动条,也可以不关闭,就可以滑动
            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);
            }
        }
    }
}
复制代码

Zusammenfassen:

Obwohl dieser Artikel sehr einfach ist, können wir auch etwas lernen. Wir haben neues Wissen gelernt, und wir haben einige neue Fortschritte in unserem Wissensvorrat und unserer Technologie gemacht. Die Technologie von C# ist zuerst einfach und dann schwierig. Erst wenn wir erwachsen werden, werden wir es tun Wir wachsen und machen dann Fortschritte. Wir müssen weiter lernen und erforschen, damit wir die Motivation zum Lernen und den Wunsch zum Lernen haben. Es ist nicht einfach, etwas zu erschaffen. ! ! !

haoping21111.gif

おすすめ

転載: juejin.im/post/7135810520640126990