データ
ID BlockSize Size Blocks
- 511.991 241520288 471728
001 511.868 24152000 47184
0001 503.2 241520 480
00001 510.829 2415200 4728
000001 511.360 4782240 9352
0000001 486.935 120760 248
000 511.889 24103840 47088
0000 493.265 193360 392
00000 511.019 2367040 4632
000000 511.262 4830400 9448
0000000 483.4 96680 200
欲しいところ
- 列3:4はプロットに使用されます。
- 2:6行でグラフを描く
- もう一つの始まりは7:11です
これに基づいて始めました。ブログ投稿
set terminal qt;
plot "<(sed -n '2,6p' sandboxgp.data)" using 3:4 with lines;
plot "<(sed -n '7,11p' sandboxgp.data)" using 3:4 with lines;
単にグラフを提供するだけです。
マルコの成果
明確にするために、y軸に対数目盛を置きました。一部のコードは以下に基づいています。回答
set terminal qt;
plot "<(sed -n '2,6p' sandbox_gp_pure.data)" using 3:4 with linespoints;
replot "<(sed -n '7,11p' sandbox_gp_pure.data)" using 3:4 with linespoints;
set logscale y 10;
set xlabel "Size"; set ylabel "log(Blocks)";
set grid xtics ytics mxtics mytics lc rgb 'blue' lt 1, lc rgb 'red' lt 1; set mxtics; set mytics 5;
set out;
与える
答え1
コマンドを使用せず、replot
代わりにカンマを使用してください。,
スクリプトでそのコマンドを使用する明確な理由がないため、replot
カンマを使用してプロットしたい,
2つの曲線を区別することをお勧めしますplot sin(x), cos(x)
。
良い習慣だと思います。しかし、原則としてはもう少し異なります(下記参照)。\
1行を最後の文字に分割するのは興味深いかもしれません(その後にスペースや他の文字は必要ありません)。スクリプトをよりきれいにします。
# ...
set style data linespoint # To avoid to repeat it on each line of plot command
# Note below no spaces after the `\`
plot "<(sed -n '2,6p' sandbox_gp_pure.data)" using 3:4 \
, "<(sed -n '7,11p' sandbox_gp_pure.data)" using 3:4
replot
代わりにコマンドを使用してください各曲線を再描画します。グラフに既に存在します(データを再読み込みし、次の操作をすべてやり直します)後ろに新しい曲線を描きます。
これは良い習慣なので明日スクリプトを再利用するにはゆっくりファイルが多い、大きい、またはリモートファイルシステムにある場合は、データを処理するために長いタスクを実行し、接続を介して作業している場合はウィンドウのタスクを待たなければならない場合は、更新するグラフィックをもっと表示 ssh -X
...
また、pdfcairo
ターミナルでは
set terminal pdfcairo; set output 'my.pdf' ;
plot sin(x)
replot cos(x)
set output ; set terminal qt # or whatever is your default terminal
2ページの文書とより大きなPDFファイルを受け取ります。
every
注:サブシェルを作成したり()
外部プログラムを呼び出さなくても、このキーワードを使用できますsed
。予約注文彼らとタイプ、次のスタイルを追加してsmooth unique
データセットを描画できますlinespoints
良い座標によって項目が並べ替えられますx
。
plot "sandbox_gp_pure.data" every ::1::5 us 3:4 t "set 1" w linesp \
, '' every ::6::10 us 3:4 t "set 2" w linesp
または注文したい場合
plot "sandbox_gp_pure.data" every ::1::5 u 3:4 smooth unique t "set 1" w linesp\
, '' every ::6::10 u 3:4 smooth unique t "set 2" w linesp
sed
もう一つの利点は携帯性です。 Windows環境でもインストールがない場合でも機能します。
あなたは知ることができます電話番号で始まるからです0
。
各ブロックの最初のデータは、ファイルの最初のブロックと同様に「0」で番号が付けられます。
これgnuplot help replot
出力:
引数のないコマンドは
replot
最後plot
またはsplot
コマンドを繰り返します。これはset
、さまざまなオプションを含むプロットを表示したり、複数のデバイスに対して同じプロットを作成したりするときに便利です。コマンドの後に指定されたパラメータ
replot
は、最後plot
またはsplot
コマンド(暗黙の「、」区切り文字を含む)繰り返す前に。
答え2
replot
代わりにplot
2番目のプロットを使用してください。これは最初のプロットを上書きしません。
# will plot one graph
gnuplot -p -e 'plot sin(x); plot cos(x)'
# will plot two graphs
gnuplot -p -e 'plot sin(x); replot cos(x)'