C# 在折线图中移动数据点

C# 在折线图中移动数据点,c#,winforms,charts,linechart,datapoint,C#,Winforms,Charts,Linechart,Datapoint,我有在x轴上有10个点的折线图,y轴是可变的。 我需要的是——当我(例如)指向x=3时,它正在移动到图表的末尾(x=10)。但当有10个值时(x在图表的末尾),我需要删除x=1处的第一个数据点,所有数据点向左移动,新值写入x=10处。我不知道怎么做,我有个主意,但它工作起来很奇怪。 谢谢你的建议 它在winforms中工作。 以下是图表的图像,例如: 我的问题的解决方案如下: i++ if(i10){Series s=chart1.Series[“Mereni”]; 数据点s1=新数据点(1,s

我有在x轴上有10个点的折线图,y轴是可变的。 我需要的是——当我(例如)指向x=3时,它正在移动到图表的末尾(x=10)。但当有10个值时(x在图表的末尾),我需要删除x=1处的第一个数据点,所有数据点向左移动,新值写入x=10处。我不知道怎么做,我有个主意,但它工作起来很奇怪。 谢谢你的建议

它在winforms中工作。 以下是图表的图像,例如:
我的问题的解决方案如下:

i++

if(i10){Series s=chart1.Series[“Mereni”];
数据点s1=新数据点(1,s.Points[1]。Y值[0]);
数据点s2=新数据点(2,s.Points[2]。Y值[0]);
数据点s3=新数据点(3,s.Points[3]。Y值[0]);
数据点s4=新数据点(4,s点[4]。Y值[0]);
数据点s5=新数据点(5,s点[5]。Y值[0]);
数据点s6=新数据点(6,s点[6]。Y值[0]);
数据点s7=新数据点(7,s点[7]。Y值[0]);
数据点s8=新数据点(8,s点[8]。Y值[0]);
数据点s9=新数据点(9,s.Points[9]。Y值[0]);
s、 点。清除();
s、 增加(s1);
s、 增加(s2);
s、 增加(s3);
s、 增加(s4);
s、 点。添加(s5);
s、 增加(s6);
s、 增加(s7);
s、 增加(s8);
s、 添加(s9);
s、 Points.AddXY(10,Convert.ToDecimal(textBox1.Text));
/*s.Points.AddXY(10,Convert.ToDecimal(textBox1.Text))*/
chart1.ChartAreas[0]。重新计算eAxesScale();}

您的目标是什么:Winforms、WPF、ASP。。?您应该始终正确标记您的问题,以便人们可以在问题页面上看到它非常不清楚你想要什么,你尝试了什么,发生了什么。假设MSChart:您可以任意添加和删除数据点,也可以任意更改x和y值。-请注意,对于折线图(与许多其他类型相反),实际顺序决定外观和值!毕竟,三个点可以用多种方式连接1.对不起,我的错。我编辑了我的帖子。现在好点了吗?不太好。也许这就是你想要的:
Series s=chart1.Series[0];s、 点。移除(0);int xmax=(int)s.Points.Max(x=>x.XValue);s、 点加xy(xmax+1,rnd.Next(8)+7);chart1.ChartAreas[0]。重新计算eAxesScale()?如果您已经修复了XAxis.Minimum/Maximum计算:要么不这样做,要么调整值!谢谢你的尝试。我自己找到了解决方案,并将其作为答案发布。
        if(i<11) { Series s = chart1.Series["Mereni"]; s.Points.AddXY(i, Convert.ToDecimal(textBox1.Text)); }


      if( i > 10) { Series s = chart1.Series["Mereni"];
            
            



            DataPoint s1 = new DataPoint(1,s.Points[1].YValues[0]);
            DataPoint s2 = new DataPoint(2, s.Points[2].YValues[0]);
            DataPoint s3 = new DataPoint(3, s.Points[3].YValues[0]);
            DataPoint s4 = new DataPoint(4, s.Points[4].YValues[0]);
            DataPoint s5 = new DataPoint(5, s.Points[5].YValues[0]);
            DataPoint s6 = new DataPoint(6, s.Points[6].YValues[0]);
            DataPoint s7 = new DataPoint(7, s.Points[7].YValues[0]);
            DataPoint s8 = new DataPoint(8, s.Points[8].YValues[0]);
            DataPoint s9 = new DataPoint(9,s.Points[9].YValues[0]);
            s.Points.Clear();


            s.Points.Add(s1);
            s.Points.Add(s2);
            s.Points.Add(s3);
            s.Points.Add(s4);
            s.Points.Add(s5);
            s.Points.Add(s6);
            s.Points.Add(s7);
            s.Points.Add(s8);
            s.Points.Add(s9);
            s.Points.AddXY(10, Convert.ToDecimal(textBox1.Text));



            /*   s.Points.AddXY(10, Convert.ToDecimal(textBox1.Text)); */
            chart1.ChartAreas[0].RecalculateAxesScale(); }