必要な変数はGPVAL_DATA_Y_MIN
とGPVAL_DATA_Y_MAX
で、特定の範囲でプロットされたデータの y 最小/最大です。 GPVAL_Y_MIN
また、プロットの境界線がどこにあるかを示すため、一般的にはあまり役に立ちません (一般に、gnuplot はデータとプロットの端の間にわずかなスペースを残すためGPVAL_Y_MAX
、これらの値は変数を少し超えています)。GPVAL_DATA...
これらの変数を利用するには、plot コマンドに範囲指定子を使用する必要があります。
plot [1:3] 'data.txt'
set yr [GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX]
replot
...
ところで、u 1:2
最初の 2 列を x と y としてプロットするのが gnuplot のデフォルトであるため、どの列をプロットしているかを思い出したくない場合を除いて、指定は冗長です。同じ出力ターミナルに再プロットしたくない場合 (再プロットすると同じプロットで 2 ページ目が作成される eps などの一部のターミナルでは役に立ちません)、次のコマンド シーケンスを使用します。
set terminal unknown
plot [1:3] 'data.txt'
set terminal <actual output terminal here>
set output 'output.trm'
plot [1:3][GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX] 'data.txt'
再び範囲指定子を使用していることに注意してください。今回は範囲が指定されています。これは with で指定するよりも少しコンパクトですがset yrange
、コード行が長くなります。
gnuplot 4.6.0 以降を使用している場合は、このstats
コマンドを利用して再プロットを回避できます。このstats
コマンドは、一連の便利な変数を作成します
stats [1:3] 'data.txt'
plot [1:3][stats_min_y:stats_max_y] 'data.txt'
ちょっと変わったコマンドで、
stats [1:3] 'data.txt'
plot [stats_min_x:stats_max_x][stats_min_y:stats_max_y] 'data.txt'
実際のデータがどこにあるかに基づいて、プロットを x 方向に塗りつぶします。たとえば、{(1.1, 3), (2, 4), (2.9,5)} にデータ ポイントがある場合、x 範囲は [1.1:2.9] に設定されます。