图表控制X轴的增长和增长,看起来它没有移动

时间:2014-02-19 22:41:34

标签: c# charts

我有应用程序使用实时图表控件收到日期并在我的控件上显示:

这是我的控制:

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

如何确保我的图表在开头看?

1 个答案:

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