我有這樣的代碼:如何查看每秒更新的圖表中的最後10個數據點?
private void timer_Tick(object sender, EventArgs e)
{
timer.Stop();
for (int i = 0; i < TOTAL_SENSORS; i++)
{
DateTime d = DateTime.Now;
devices[i].Value = float.Parse(serialPort.ReadLine());
if (chart1.Series[i].Points.Count > MAX_POINTS)
{
//see the most recent points
}
chart1.Series[i].Points.AddXY(d, devices[i].Value);
}
timer.Start();
}
我的這部分代碼是計時器的滴答事件在那裏我畫一個圖,我需要更新它的每一個tick.I不斷增加點,當點計數達到MAX_POINTS( 10)它刪除第一個點和在最後添加一個新點。
問題是,當它達到MAX_POINTS時,它開始在最後刪除點並且圖形不自動滾動。所有點都被刪除,並且沒有新的點被添加。
請幫我說出我需要改變圖表的工作方式,正如我所說的。
編輯1:我正在使用Windows窗體。
編輯2:AddXY和RemoveAt不是我的,他們是從點集合。編輯3:我也想知道如何擁有一個'範圍',並查看最近一小時或上一週或上個月的數據。
編輯4:我改變了我的問題了一下,我現在要縮放的圖表,從最後一小時顯示點/天
這是使用WinForms還是WPF?在WPF中,您可以將DataBinding用於ObservableCollection,然後您不必擔心更新UI(僅限集合)。 –
我想知道你是否擁有自己的Collection/List類的實現?或RemoveAt這是你自己的實現與AddXY()? – sll
@sllev他們來自點集合,我沒有改變任何東西到默認的圖表系列和點類。 – Bosak