C# Chart工具绘制时间动态曲线

如图所示,本人初学c#原想做一个随时间动态更新,画面不断左移的折线图:
图片说明
目前的情况:每当x轴坐标挤到原点时,y轴被挤压缩短;因为x轴最值长度是坐标间距的整数倍,当x轴坐标挤到原点时,x轴多显示1个坐标,x轴被挤压缩短。经过原点后,x、y轴又被拉伸到原尺寸。
图片说明

请问:如何在不取消显示x轴坐标的情况下,使得折线图不会因为x轴坐标的左移过程被挤压变形?

//初始load部分
            chart1.ChartAreas[0].AxisX.LabelStyle.Format = "hh:mm:ss.ff";
            chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Milliseconds;
            chart1.ChartAreas[0].AxisX.MajorGrid.IntervalType = DateTimeIntervalType.Milliseconds;
//Timer部分
            chart1.ChartAreas[0].AxisX.Minimum = DateTime.Now.AddSeconds(-5).ToOADate();
            chart1.ChartAreas[0].AxisX.Maximum = DateTime.Now.ToOADate();
            chart1.ChartAreas[0].AxisX.Interval = 500;
                        chart1.Series[0].Points.AddXY(DateTime.Now.ToOADate(), Convert.ToDouble(Temperature));

提前谢谢!

结合定时器就可以,类似如下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace DynamicGraph
{
    public partial class Form1 : Form
    {
        DateTime dt_begin;
        DateTime dt_now;
        public Form1()
        {
            InitializeComponent();
            InitChart();
            dt_begin = System.DateTime.Now;
        }
        Queue<int> Q1 = new Queue<int>();
        public void InitChart()
        {

            Series series = chart1.Series[0];
            // 画样条曲线(Spline)
            series.ChartType = SeriesChartType.Spline;
            // 线宽2个像素
            series.BorderWidth = 2;
            // 线的颜色:红色
            series.Color = System.Drawing.Color.Red;
            // 图示上的文字            
            series.IsVisibleInLegend = false;   //隐藏图示上的文字          
            // 设置显示范围
            ChartArea chartArea = chart1.ChartAreas[0];
            chartArea.AxisX.Minimum = 1;
            chartArea.AxisX.Maximum = 100;
            chartArea.AxisY.Minimum = 0d;
            chartArea.AxisY.Maximum = 100d;
        }
        Random r = new Random();
        int temp;
        public void Draw()
        {
            this.chart1.Series[0].Points.Clear();
            temp = r.Next(0, 100);
            Q1.Enqueue(temp);
            if (Q1.Count > 100)
                Q1.Dequeue();
            for (int i = 0; i < Q1.Count; i++)
            {
                chart1.Series[0].Points.AddY(Q1.ElementAt(i));
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }
        TimeSpan ts;
        private void timer1_Tick(object sender, EventArgs e)
        {
            Draw();
            dt_now = System.DateTime.Now;
            ts = (dt_now - dt_begin);
            label2.Text = "系统运行时长:" + ts.Days + " 天 " + 
                ts.Hours + " 小时 " + ts.Minutes + " 分钟 " + ts.Seconds + " 秒";
            label1.Text = dt_now.ToString();
        }
    }
}

https://download.csdn.net/download/weixin_43074474/12270566

这个可能是x轴文本越出编辑导致的,尝试隐藏x轴文本先看下会不会出现问题

我也想做这个类型的曲线

你的问题解决了没有?我也遇到同样的问题了。