我有应用程序使用实时图表控件收到日期并在我的控件上显示:
这是我的控制:
MyObject obj...
Series series = new Series();
series.Color = Color.Blue;
series.ChartType = SeriesChartType.Spline;
series.BorderWidth = 2;
chart1.Series.Add(series);
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.White;
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.White;
chart1.ChartAreas[0].AxisX.IsStartedFromZero = true;
chart1.ChartAreas[0].AxisX.IntervalOffsetType = DateTimeIntervalType.Number
;
计时器打勾:
private void chartTimer_Tick(object sender, EventArgs e)
{
series.Points.Add(wf.BitsPerSecond * 0.000001);
chart1.ResetAutoValues();
}
我的问题是,在开始时这是图表:
几分钟后,X轴正在增长并且正在增长,看起来图形停止移动:
如何确保我的图表在开头看?
答案 0 :(得分:2)
您不断向图表添加点数,但不要删除它们。因此,当您调用chart.ResetAutoValues()
时,它会将x轴上的最小值设置为低于第一个点的x值,并将最大值设置为高于(或等于)最后一个点的x值。最大值不断变大,但最小值永远不会变化,因此随着时间的推移,图形看起来会被压缩。一旦达到某个阈值,您就可以开始删除点数,如下所示:
private void chartTimer_Tick(object sender, EventArgs e)
{
if (series.Points.Count() > 1000) series.Points.RemoveAt(0);
series.Points.Add(wf.BitsPerSecond * 0.000001);
chart1.ResetAutoValues();
}