データ
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
欲しいところ
これに基づいた私のスタート blogpost
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;
グラフは1つだけです。
ここでは、コードがこれに基づいていることを明確にするために、ログスケールをy軸に配置しました answer
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;
与える
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
コマンドを使用して各曲線を再度プロットしますグラフィックにすでに存在し(データを再読み込みし、以下のすべての操作を再度実行します)、afterあなたのみ新しい曲線をプロットします。
これは良い習慣です。明日もスクリプトを使用すると、ファイルが多い、大きい、または大きい場合に、作業プロセスの一般的な速度を落とすことができます。リモートファイルシステム上。データを処理するために長い操作を実行する場合。効果的にプロットされたポイントが多く、_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
キーワードを使用できます。 sort でそれらを事前注文できない場合は、_smooth unique
_を追加して、linespoints
でデータセットをプロットできます。 lovesエントリを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
_
もう1つの利点は移植性です。 sed
がインストールされていない場合でも機能し、Windowsでも機能するはずです。
行番号のシフトは、_0
_から始まるためです。
各ブロックの最初のデータは、ファイルの最初のブロックと同様に「0」の番号が付けられます。
gnuplot_help replot
_出力:
引数のない
replot
コマンドは、最後のplot
またはsplot
コマンドを繰り返します。これは、異なるset
オプションを使用してプロットを表示する場合、または複数のデバイスに対して同じプロットを生成する場合に役立ちます。
replot
コマンドの後に指定された引数は最後のplot
またはsplot
コマンドに追加されます(暗黙の '、'区切り文字付き)繰り返された。
2番目のグラフのreplot
の代わりにplot
を使用します。その後、最初のグラフは上書きされません。
# 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)'