gnuplot の使い方(2022 年 6 月 21 日版)
※過去に入力したコマンドは方向キーの↑↓で辿ることができる
※コマンドは特定できる範囲で省略可能(下線部のみの入力で有効)
【終了】
×ボタンを押す/exit [Enter]/quit [Enter]
※[Enter]はエンターキーの押下
【カレントディレクトリ(作業フォルダ)】
・カレントディレクトリの確認 pwd [Enter]
・カレントディレクトリの変更(6/21追記)(環境により \ は / に置き換えて下さい)
cd ‘[移動先]’ ←移動先を単一引用符で囲む
※ディレクトリ構造がC:\Users\ABC\Documents であり,カレントディレクトリがABC であるとする
cd ‘C:\Users\ABC\Documents’ →Documentsに移動 cd ‘.\Documents’ →Documentsに移動
cd ‘Documents’ →Documentsに移動 cd ‘C:\Users’ →Usersに移動
cd ‘..’ →Usersに移動
【グラフの描画1】
・グラフの描画(plot)
plot sin(x) [Enter]
plot x [Enter] →この内容で上書きされる(sin(x)は消える)
※以下では[Enter]を省略する(改行時に[Enter])
・描画領域のクリア clear
・複数のグラフの描画1(カンマで区切る)
plot sin(x), cos(x)
・複数のグラフの描画2(replot)
plot sin(x)
replot cos(x) →追加される(sin(x)とcos(x)が表示される)
【演算子】
和:+
差:- 積:*
商:/
べき乗:**
[例] plot x*x, x**2.2, 100/(1+x**2)
※x*xとx**2は同じ
【演算子のTips】以下はいずれもC言語のように記述する
・条件演算子が使える:plot x<0 ? 0 : x
・(1/2)x をプロットしたいときにplot 1/2 * x はだめで plot 1./2 * x とする(1/2は整数 同士の除算であり,0.5とならず0となる)
・sin(2x) をプロットしたいときに plot sin(2x)はだめで plot sin(2*x) とする
【グラフの体裁】
・凡例の指定
plot sin(x) title “f(x)”
※以下では,このplotの後にグラフの体裁変更をするものとする
・凡例の表示位置
set key left →凡例の表示位置が左(上)になる
repolot ←これを実行することで反映される(以下,replotは省略)
※凡例の表示位置はleft/right/top/bottom/outside/belowを組み合わせることができる
・設定の解除(デフォルトの設定値に戻す)
reset
・軸の範囲(x軸あるいはy軸のみ指定してもよい)
set xrange [-pi:pi] ←piは円周率を表す定数として予約されている set yrange [-1.5:1.5]
・軸の目盛(x軸の例.y軸も同様にして指定できる)
[例1] set xtics -2, 0.5, 0 →x軸の目盛が「-2開始,1刻み,0で終了」になる [例2] set xtics 1.57 →x軸の目盛が1.57刻みになる
・軸のラベル(x軸の例.y軸も同様にして指定できる)
set xlabel “x” →x軸に「x」というラベルが表示される
・座標軸(6/21追記)
set zeroaxis →座標軸が表示される unset zeroaxis →座標軸が消去される
set xzeroaxis →x軸のみ表示される(y軸も同様にして指定できる)
unset xzeroaxis →x軸のみ消去される(y軸も同様にして指定できる)
set zeroaxis linetype 線種番号 ←線種の変更(簡易版):linetype は線の色や太さなどの属 性の集まりであり,線種番号により「属性の集まり」が指定される.0は黒の細い 破線(座標軸のデフォルトの設定),-1 は黒の細い実線である.座標軸に限らず,
グラフの線種も指定できる(デフォルトでは1, 2, 3,…が指定されている).例えば,
plot sin(x) linetype 2とすると「無指定の場合の2本目に表示される線種」になる.
次に述べるグリッドの線種も指定可能.
・グリッド(6/21追記)
set grid →グリッド線が表示される
unset grid →グリッド線が消去される
・グラフの縦横比
[例1] set size ratio 0.5 →横1に対して縦が0.5の長さになる
[例2] set size square →グラフが正方形になる(set size ratio 1と同じ)
・グラフのタイトル
set title “Title” ←グラフのタイトルとしてTitleが表示される
【グラフの出力先】
※【グラフの体裁】で行ったplot及びグラフの体裁変更がされているものとする
[例] 画像(Portable Network Graphics:PNG)として出力 set terminal png →出力先をPNGファイルにする
set output “a.png” ←出力ファイル名(a.png以外でもよい)
replot →カレントディレクトリにa.pngが出力される
set terminal windows →出力先を標準(画面)に戻す
【グラフの描画2】
・データファイルからのプロット
[例1] plot “step.txt” ←カレントディレクトリにあるファイル名を指定する
[例2] plot “step.txt” with lines →データ点が線でつながれて描画される [例3] plot “step.txt” with lines title “f(x)” ←with linesとtitleを併記可能
【定義】
[例1]
a(n)=-4/(pi*n**2)
plot pi/2+a(1)*cos(x)+ a(3)*cos(3*x)+a(5)*cos(5*x)
[例2] [例1]のaを定義した上で c(n,x)=a(n)*cos(n*x)
plot abs(x) title “|x|”, pi/2+c(1,x)+ c(3,x)+c(5,x) title “Fourier (n=5)”
【スクリプト】(今は省略)
load “a.txt” ←a.txtに書かれた内容が実行される
【カーブフィッティング】(第9回で予定したが到達せず)
・配布したcos.txtのデータを,2次関数f(x)=a0+a1*x+a2*x**2でフィッテングする場合 f(x)=a0+a1*x+a2*x**2
fit f(x) "cos.txt" using 1:2 via a0,a1,a2 plot "cos.txt" with lines, f(x)
※using 1:2は,cos.txtの1行目のデータをx,2行目のデータをyとして,y=f(x)で近似す るということである.データが3行あり,1行目のデータをx,3行目のデータをyとする ときはusing 1:3とする.