Bluepostech

まじめなことを書きます

【gnuplot】目盛りを「(仮数)×10^(指数)」で表示する

コンピュータでの数値の表記方法は、大別すると2種類ある。ひとつは1000,2000,3000といったように全部の桁を表示する方法である。ただしこれは日常生活では気にならないが、桁数が増えてくると非常に見栄えが悪い。

もうひとつは1.0e+3,2.0e+3,3.0e+3,といったように「(仮数)e(指数)」で表記する方法である。これはたとえば「1.0e+3」は「1.0×10^3」を意味する。これは自然科学をやる人間にはなじみの表記法だ。

gnuplotで目盛りを設定する場合、デフォルトでは全部の桁を表示する小数表示か「(仮数)e(指数)」の指数表示は簡単に設定できる。しかし「(仮数)×10^(指数)」という表記をするには少し工夫が要る。

まず、小数点表示と指数表示のやり方について。目盛りの表記法を変えるにはset formatコマンドを使う。"%.3f"、"%.5E"のように使い、前者は小数点以下3桁を表示する小数点表示、後者は仮数部の小数点以下5桁を表示する指数表示を表す。これを

set format (座標軸)"%.3f"

のように使う。gnuplotでは引用符が必要なことが多い。

画像はy=exp(x)をプロットしたものだ。y軸目盛りの左側が"%.3f"、右側が"%.3E"と設定したものだ。

f:id:bluepost69:20151025020702p:plain

この画像自体は"%.3f %.3E"と設定した。このようにformatの設定は比較的自由に設定できる。たとえば"%.3f km"と打てば次のようになる。

f:id:bluepost69:20151025021336p:plain

最後に肝心の10の累乗表記だが、これには3点注意しないといけない点がある。まず、10の右肩に指数が乗った表記を使うには、terminalの設定を拡張する必要がある。具体的には最初の設定でターミナル名のあとに「enhanced」とつける。たとえばpngcairoをターミナルにしているときは

set terminal pngcairo enhanced font "font,14"

とする。こうすることでLaTeXのように上付き下付き文字やギリシャ文字、特殊記号を使えるようになる。

もうひとつの注意点だが、×というのは特殊記号になる。特殊記号を参照するときは、

{/Symbol  \[番号])

とする。×の場合は264番なので{/Symbol \264}とする。

3点目だが、仮数と指数はそれぞれ%t,%Tで取り出すことができる。

以上3点を踏まえてうまく設定すると画像のようになる。どのように設定するかは演習としよう(答えは下にあります)。

f:id:bluepost69:20151025022351p:plain

 

 

 

正解:"%t{/Symbol \264}10^{%T}"