どのようにプロットの大型データベクトルを正確に全ズームレベルは実際の時間がかかる?
-
21-08-2019 - |
質問
私は大型のデータセット(10Hzデータであり、864kポイント/24時間)の必要性プロット。のアイデアは、ユーザーでズームや像、高精細に散布を推定した。
あなたの情報を入力してくださいものの継続がスパイクです。以降、データセットが大きくできるようになプロット毎にそれぞれのプロットの更新.
ものではなくプロット毎にn番目のポイント又は他のいく大きな特徴のような日本でしかできない短いスパイクです。
Matlabなります。すで864kベクトルの零点をセットするだけで任意の一点1でプロットを正確にリアルタイムズやパン.
どのようなMatlabしていきますか?
私のターゲットシステムはジャワに位置するこの発見はこのプロットスイング/Java2D.
解決
あなたは、MATLAB Centralからファイルを試してみてください
https://mathworks.com/matlabcentral/fileexchange/15850-dsplot -downsampledプロットする
著者からの の
「プロット」のこのバージョンでは、要素の非常に大きな数を持っているデータを視覚化することができます。大規模なデータセットをプロットすると、お使いのグラフィックが低迷なりますが、ほとんどの時間は、あなたはプロットに表示された情報のすべてを必要としません。あなたの画面は非常に多くの画素を有し、そしてあなたの目は、画面上で撮影していない情報を検出することができません。
この関数は、このようにメモリ要件を改善し、データ及びプロットデータのサブセットのみをダウンサンプリングします。プロットがズームアップされると、より多くの情報が表示されます。いくつかの作品は、外れ値が捕獲されていることを確認するために行われます。
構文:
dsplot(x, y)
dsplot(y)
dsplot(x, y, numpoints)
例:
x =linspace(0, 2*pi, 1000000);
y1=sin(x)+.02*cos(200*x)+0.001*sin(2000*x)+0.0001*cos(20000*x);
dsplot(x,y1);
他のヒント
私は、MATLABがそれをしないのか分からないが、私は四分木ので開始したいですます。
あなたはの大きさに匹敵する領域に到達するまで(あなたが見ているものをオーバーラップ領域で始まる)四分木を歩く、与えられたズームレベルでレンダリングするために、その後、クワッドツリーにすべてのデータポイントをダンプピクセル。その領域の中央の画素を貼り付けます。
を追加しました:また、あなたがより速く描画を得るのを助けるのOpenGL / JOGLを使用して描画を行います。あなたはパンを予測し、あなたが新しいフレームに任意のCPUの作業を行う必要がないように、ディスプレイリストか何かに表示するポイントを構築することができます場合は特に。
10Hzのデータとしてプロット10枚ます。シンプルで、多くのゲームを実現>100fpsのより複雑なグラフィー。
場合はプロット10ピクセル/秒毎に可能なデータポイントを表示することができ分のデータを用い600ピクセル幅のパーツをプレゼント!保存されると、指数は600回を最後のサンプルでのみを描画すと考えられます。
ない場合は、新しいデータポイント毎に10秒する挿補間データ-ポイント。三つの選択肢ちです:
- 繰り返しの最後のデータ-ポイント。
- 挿入、"空"のデータ-ポイント。このギャップのグラフで表示します。
- な更新は、グラフのデータポイントホームページから確認できます。そして挿入するすべてのピクセルのすべての描画、線形補間との間のデータ-ポイント。
るアニメーションの円滑な利用 ダブルバッファリング.場合は対象言語に対応しcanvasウィジェットでも対応ダブルバッファリング.
時にズームの三つの選択肢としては、上記の表のデータ-ポイントは継続的な場合でも、元のデータ-ポイントです。
この が実施でJava.