2017-02-13 12 views
0

を使用して、動的x軸データこのことは、何よりもオープンなディスカッショントピックの詳細です。私は私のCPTPlot *plotを更新する前に、現在、私は私のNSMutableArray *voltageArrayで50のFloat32値を格納しています。私が50の値を得るたびに、私はvoltageArrayから前の50を取り除き、プロセスを繰り返します。私のプロットでは常に50の値を「リアルタイム」で表示します。CorePlot - 二つの配列

しかし、私が受け取っているデータ(圧力トランスデューサを備えたCypress BLEモジュールからの電圧)は非常に速く、あらゆるバリエーション(0.4V〜4.0V;圧力がかからないように)はできません私のグラフに見られる。これは直線のように表示され、傾斜の増加または減少を示さずに上下に変化します。

全体の変化を表示するには、これらの50個の値を別のNSMutableArray *stampArrayの最初のインデックスに格納し、インデックスをstampArrayにして情報を表示したかったのです。一方、numberOfRecordsForPlot:方法は次のようになります。

- (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plotnumberOfRecords { 
    return (DATA_PER_STAMP * _stampCount); 
} 

これは、最初にデータの50個BLEモジュールからキャプチャされた後、その後、_stampCountが1増加することになる、とプロットのレコード数がだろう、50になります50(約2500から10000の範囲まで、私は全体に事をリフレッシュし、プロセスを再起動したい。)

によって増加は、これは正しいアプローチですか?次の50などを構築しながら、最初の50ポイントをグラフに残すにはどうしたらいいですか?グラフをy = x^2と想像し、積分を適用するときのグラフの様子を想像してみましょう。全体が曲線の下の領域を四角形に分割します。

答えて

0

Plot Gallery Core Appのサンプルアプリケーションに含まれている「リアルタイムプロット」デモをご覧ください。それは空のプロットから始まり、最大点に達するまで毎回新しいポイントを追加します。その後、追加された新しいポイントごとに1つの古いポイントが削除され、合計の数が一定に保たれます。デモではタイマーを使ってランダムなデータをプロットに渡しますが、アプリはもちろんどこからでもデータを収集できます。メインスレッドのグラフと必ず対話してください。

私は(あなたの表示は、多くの点を解決するための十分なピクセルを持っていますか?)あなたは1つのプロット上万個のデータポイントを表示することができます疑います。そうでない場合、プロットに送る前にいくつかのポイントを削除するためにデータをフィルタリングしたり平滑化したりすると、描画パフォーマンスが大幅に向上します。

+0

応答のおかげで、それはかなり私が後だものです。 2500-10000は教育されていない推定値でした。 1000を超えるとパフォーマンスが低下し、<1000の場合は動作します。プロットギャラリーについては、ポイントの追加と削除を確認するためにどのようなクラスやメソッドを調べるべきですか?私はこれに新しいので、私はまだすべての周りに私の頭を取得しようとしています。 –

+0

'RealTimePlot.m'の' -newData: 'を見てください。 –

+0

素晴らしいですが、かなり簡単です。 Grazie –