私はこのコードを持っています:
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();
}
コードのこの部分は、チャートを描画するタイマーのティック イベントであり、ティックごとに更新する必要があります。ポイントを追加し続け、ポイント カウントが MAX_POINTS(10) に達すると、最初のポイントが削除され、新しいポイントが追加されます終わり。
問題は、MAX_POINTS に達すると、最後にポイントの削除が開始され、グラフが自動スクロールされないことです。すべてのポイントが削除され、新しいポイントは追加されません。
私が言ったようにチャートを変更するために必要なことを教えてください。
編集 1: Windows フォームを使用しています。
編集 2: AddXY と RemoveAt は私のものではなく、ポイント コレクションのものです。
編集 3:「スコープ」を設定して、過去 1 時間、先週、または先月のデータを表示する方法も知りたいです。
編集 4: 質問を少し変更しました。グラフをスケーリングして、過去 1 時間/日のポイントを表示したいと思います。