0

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 件のレコードを表示するように設定されていたので、これらの空のデータ ポイントをすべてスクロールすることができました。正確な数のデータ ポイントがグラフに表示された後にスクロールバーを表示し、データが追加されるたびにスクロールバーを更新することはできますが、もっと簡単な方法はありますか?

私が言おうとしていることを理解していただければ幸いです。私はまだ英語に取り組んでいます。

4

1 に答える 1

1

WPF を使用できる場合はhttp://dynamicdatadisplay.codeplex.com/が あり、古い WPF バージョンの場合はhttp://dynamicdatadisplay.codeplex.com/wikipage?title=D3v1があります。

これはかなり良いです、私は以前にいくつかのかなり高速なデータサンプリングに使用しました

于 2013-06-10T00:18:00.080 に答える