【解決方法】C# winform チャート – データ ポイントの削減

プログラミングQA


PictureBoxを使用してグラフをプロットしています。 すべてのポイントをコントロール幅に収めるために、通常の平均化手法を使用しています。 これが唯一の方法なのか、それとも他の公式があるのか​​を理解したいと思います。

この手法を使用すると、データの傾向が失われるような気がします (狭い領域に多数の点をプロットする場合にそれを視覚化できます)。

データの傾向を失うことなく、100 ピクセルのコントロールに 50,000 のデータ ポイントを収めることができるように、どのようなデータ削減/圧縮/計算手法を使用できるかなど、さらなる研究のための指針をどなたか教えていただけませんか。

私が試したこと:

通常の平均化方法。

よりわかりやすく説明するために、幅 100 ピクセルの PictureBox に 1000 個の値をプロットする必要があるとします。 PictureBox の幅に対するプロットされる値の数の比率、つまり 1000/100 = 10 を計算します。つまり、グラフ上の各ピクセルは 10 個の値の平均を表します。 これにより、10 個ごとの値の平均のグラフをプロットし、PictureBox 上に 1000 個の値の平均を表示します。 これは、データ ポイントの小さなセットではうまく機能します。

解決策 1

このアルゴリズムを考えてみましょう MSChart 拡張機能でのダウンサンプリング アルゴリズムの実装[^] 傾向やパフォーマンスへの影響の詳細を失うことなく、大きなデータ サイズをプロットします。

コメント

タイトルとURLをコピーしました