C# の .NET のチャートについていくつか質問があります。現在、シリアル ポートからのデータをリアルタイムで表示するアプリを開発中です。
スプライン シリーズを含む .NET ツールボックスの単純なチャートを使用しています。実現したい主な機能が 2 つあります。
1 つ目は、今後のデータ ポイントをグラフの右側に表示し、新しいデータが来ると左側に移動するようにしたいのですが、それを適切に説明する方法がわかりません。まだ画像を投稿できないので、主なアイデアを理解していただければ幸いです。
グラフを更新するたびにすべてのデータ ポイントをリロードすることで、この種の動作を実現しました。最初はすべて空で、データが来ると、最後に値のキューをどんどん大きくしていきます。
コードがそのようなものであることを明確にするために:
chartAccelerationX.Series["XSeries"].Points.Clear();
dataPointTable = dataPointQueue.ToArray();
for (int i = 0; i < 1000; i++)
{
DataPoint dataPointX = new DataPoint();
if (1000 - dataPointTable.Length < i)
{
dataPointX.SetValueXY(i + 1, dataPointTable[i - 1000 + dataPointTable.Length].x);
}
else
{
dataPointX.IsEmpty = true;
}
chartAccelerationX.Series["XSeries"].Points.Add(dataPointX);
}
chartAccelerationX.Update();
それはかなりうまく機能しますが、私が言ったように、チャートを更新するたびに(そして私は100ミリ秒ごとにそれを行います)1000個のデータポイントすべてを作成しているので、おそらくパフォーマンスの面で悲惨です(約6が必要です) -合計で 8 つのグラフ) であり、データ ポイントの正確な数 (ここでは 1000) によって制限されます。
データ ポイントの量を動的に増やし、必要な 2 番目の機能 (たとえば、一度に 50 レコードしか表示されない自動マッチング スクロール バー) を使用して、そのようなことを達成する簡単な方法はありませんか?
私もスクロールバーを使用していましたが、1000 件中 50 件のレコードを表示するように設定されていたので、これらの空のデータ ポイントをすべてスクロールすることができました。正確な数のデータ ポイントがグラフに表示された後にスクロールバーを表示し、データが追加されるたびにスクロールバーを更新することはできますが、もっと簡単な方法はありますか?
私が言おうとしていることを理解していただければ幸いです。私はまだ英語に取り組んでいます。