gnuplot

This page is written in Japanese only...

gnuplot のコマンドのメモ書き.何回やってもこういうのは忘れるので・・・

(2020/3/9)

論文に載せる図として,人生で初めて箱ひげ図を描画することにしたのですが,コマンドが全然わかりませんでした.とりあえず,こちらのサイトを参考にしてプロットできたのでよしとしましょう.

(2020/2/16)

またもや ffmpeg 関連です.MATLAB などで png ファイルを連番で吐き出して ffmpeg で動画にしようとすると,時折,次のようなエラー文が出力されます.

width not divisible by 2 (1167x875)

早い話が,ピクセル数が偶数になってないからダメですよ,ということのようです.このような場合,オプションとして

-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"

といれると,勝手に偶数にしてくれて,ffmpeg が回ります.

(2019/1/21)

gnuplot そのものではないが,gnuplot で連番で png 画像を作った時,それらを繋げて動画にするコマンド(いつになっても全く覚えられません)

ffmpeg -r 30 -i image_%03d.png -vcodec libx264 -pix_fmt yuv420p -r 60 out.mp4

詳しいことは,こちらのサイトが非常に参考になります.

(2018/5/25)

トーラスを gnuplot で綺麗に描きたくなった時は,set hidden3d で陰線処理をして,set isosamples **,** で網目を細かくすれば良い.

例えば,以下のような感じ

R = 3.0

r = 1.0

set parametric

set hidden3d

set isosamples 40,40

splot (R-r*cos(u))*cos(v),(R-r*cos(u))*sin(v),r*sin(u)

(以下はいつ書いたのか失念)

・pm3dプロットにおける陰線処理

通常のプロットで陰線処理するなら,set hidden3d,としてあげればよいが,pm3dプロットの場合はこれだと言うことを聞いてくれない.

「set pm3d depthorder」

とすることで解決する.

・タイトルの改行

何かしら数値計算した結果をgnuplotで描画して画像ファイルとして保存する際には,パラメータをse title "..."に記述しているのだが,パラメータの数が多くなると,改行して書きたくなる.

結論とすれば,set title "... \n ..."と,改行指示を書いてあげれば良い.ちょっとはまることとして,シングルクウォーテーションを使うのではダメで,ダブルクウォーテーションを使わなければダメ,というところである.

・index

論文用の図を作るときに,等高線の値ごとにデータブロックを作ることはできたのだが,値ごとに色を変えてプロットする方法がわからなかった.色々と調べた結果,index コマンドを使えばよいことがわかった.1つのデータファイル内にデータブロックが複数あるとき,それらは順に 0 からラベル付けされている.よって,

「"hoge.dat" index 0」

とすれば,1つ目のデータブロックに関して作業できる.

データブロックが多数ある場合は,Cとかで適当に gnu ファイルを作ってあげればよい.

・等高線のレベル決め

どこからどこまで,どの間隔でプロットするかの設定:

「set cntrparam levels incremental -13, 1, -2」

こんな感じでOK.

・対数プロットで,数値を10の羃乗表示

論文の挿絵で,よく片対数グラフを書くのだが,その際に10の羃乗で y 軸のメモリを表示すると気持ちがいい.指数表示するには 「set format y "%e"」とでも書いておけばよいが,10の羃乗表示がほしいなら,次のように書けばよい:

「set format "10^{%L}"」

これで円満解決.