目盛りを変更する

範囲を指定する

x軸,y軸の範囲や目盛りは自動的に決定されます(自動縮尺機能)が,自分で設定することもできます。 範囲の設定は,前に述べたようにplotと一緒に指定することができます。 なお,sin(x) や cos(x) のような非線形関数を含む場合は,サンプリング数に注意を払う必要があります。

gnuplot> plot x / 2*cos(x)*sin(x)          # 結果
gnuplot> set samples 1000
gnuplot> plot [0:100] x / 2*cos(x)*sin(x)  # 結果

x軸の範囲が 0 <= x <= 100 になっていることと,y軸の範囲が関数の値域に合わせて自動的に変更されていることを確認してください。 この他に,set [xy]rangeがあります。 一度set xrangeもしくはset yrangeを設定すると,もう1度set xrangeもしくはset yrangeを設定するまで範囲が固定されます。

# 結果

gnuplot> set xrange [0:100]
gnuplot> set yrange [0:25]
gnuplot> plot x / 2*cos(x)*sin(x)

自動的に範囲を決定するように設定を戻すには, set autoscaleを使います。

# 結果

gnuplot> set autoscale             # x軸,y軸ともに自動縮尺機能を設定
gnuplot> plot x / 2*cos(x)*sin(x)

この場合,自動縮尺機能が適用されていてもx軸の範囲は変わっていないことに注意してください。

対数目盛りで表示する

次のようにy軸の目盛りが非常に大きな場合は自動的に指数表示 (Xe+N = X * 10^N) になります。

# 結果

gnuplot> plot [0:1000] exp(x)

しかし,このような目盛りの取り方では関数の特性を上手く表現できていません。 指数関数的に増加するような場合では,対数目盛りを用いると結果が見やすくなります。 そのような対数グラフを描く場合はset logscaleコマンドを使います。

# 結果

gnuplot> set logscale y
gnuplot> plot [0:1000] exp(x)

対数表示を止める場合は,

gnuplot> set nologscale

とします。

表示される目盛りの値を指定する

目盛りの間隔を指定するにはset [xy]ticsを使います。 set [xy]tics <incr>で増分だけ指定するか,set [xy]tics <start>, <incr>, <end>で開始値,増分,終値を指定します。

gnuplot> set xrange [-10:10]
gnuplot> plot x               # 結果
gnuplot> set xtics 2
gnuplot> set ytics 0, 1, 5
gnuplot> replot               # 結果

片対数目盛りの場合は自動的に小目盛り (minor scale) が表示されます。

# 結果

gnuplot> set logscale y
gnuplot> set xrange [0:10]
gnuplot> set ytics autofreq  # 自動的に計算されるようにする
gnuplot> replot

片対数目盛では大目盛りを10分割した小目盛りが表示されます。 この分割数を変更したい場合や,普通のグラフで小目盛りを表示したい場合は, set m[xy]ticsを使って大目盛りを何分割するかを指定します。

# 結果

gnuplot> set mxtics 5
gnuplot> set mytics 20
gnuplot> replot

グリッドを表示する

グリッドを描くにはset gridを使います。

# 結果

gnuplot> set grid
gnuplot> replot

小目盛りにもグリッドを描きたい場合は,

# 結果

gnuplot> set grid xtics ytics mxtics mytics
gnuplot> replot

とします。グリッドを描かないようにするには,

gnuplot> set nogrid

としてください。

$Id: scales_and_tics.shtml 1289 2007-02-04 13:22:39Z SYSTEM $