2014-02-19 24 views
1

我的应用程序与实时图表控件收到日期和我的控制显示此:图表控件X轴不断扩张,它看起来像它不动

这是我的控制:

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(); 
} 

我的问题是,在开始时是这样的图:

enter image description here

几分钟后,X轴是在不断扩张,它看起来像图形停止运动:

enter image description here

我怎样才能确保我的图表将被看的开始?

回答

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(); 
} 
+0

而且在这种方式我可以看到,X轴仍在不断扩张 – user3271698

+0

最小值和最大值仍然会增长,因为你不断增加点。一旦你达到一个稳定的状态,最小和最大值之间的差异不应该增长(你总是会看到1000点的数据) – mmathis

+0

那么我应该改变这个图来保持它在开始状态? – user3271698

相关问题