2017-04-25 3 views
0

私は巨大な9GBのバイナリデータファイル(フォーマットは '%float%float')を与えられていて、gnuplot 5.0は全体を読み込もうとするとバリーアップします。大きなバイナリデータファイルのgnuplotプロットを制限する

プロットコマンドを作成して、バイナリデータファイルの1Kまたは2K程度しか読み込まないようにプロットを制限する方法を教えてください。

答えて

1

あなたが最初の2000件のレコードをプロットする例えば、gnuplotとeveryキーワードを使用することができます。

plot 'file.dat' binary format='%float%float' every ::::2000 using 1:2 with lines; 

をしかし、おそらくされていない、それは全体のファイルを読み込みのように思えるし、その後、最初の2000件のレコードをプロットあなたが欲しいもの。だから、同じように、外部のユーティリティを使用している場合があります:

plot "<(head --bytes 16000 file.dat)" binary format='%float%float' using 1:2 with lines 

たとえば、このおもちゃのテストでは、私の仕事:

perl -e 'for ($i=0; $i < 21; $i++) { print pack "ff", $i, $i*$i }' > squares.dat 
gnuplot -e "set terminal png;set out 'only5squares.png';plot '<(head --bytes 40 squares.dat)' binary format='%float%float' using 1:2 with lines;" 

enter image description here

+0

はい、あなたの最初の提案は全体のデータを読みありませんファイル。 2番目の結果はgnuplotの警告になります:有効なポイントのないデータファイルをスキップします。空のプロットが表示されます。 gnuplotがバイナリデータのときに「レコード」という概念を知っているのかどうか分かりません。 – tansvaal

+0

ええと、玩具の例(私はそれを追加する答えを編集しました)はgnuplot 5.0で私のために働いていました。 – MassPikeMike

+0

gnuplotの "レコード"の概念を変更する 'binary'と一緒に使うことができる他のキーワードがありますが、それらのうちの1つを使用している場合には' filetype'や 'array'のようになります。 – MassPikeMike

関連する問題