・gnuplot ver4.0.0のダウンロード方法
・コマンドウィンドウ画面のフォントサイズ変更方法
・コマンドウィンドウ画面でコマンドでディレクトリを変える方法
・別のディレクトリにあるデータファイルからデータを読み込みグラフ記述する方法
・データファイル読込みについて
・スタイルの設定
・重ね書き
・凡例
・各軸のラベル
・グラフ上で日本語を使う方法
・範囲の設定
・目盛りの設定
・グリッドの設定
・線の色の変更
・線の太さの変更
・線の種類の変更
・第2軸を用いる場合
・凡例の位置
・ラベル等の添字の表示
・対数目盛
・グラフのコピー
・バッチ処理
・バッチファイルのREM文
・グラフの保存方法について
・グラフを複数のウィンドウで表示する方法
・ディレクトリ名に日本語含むとOPENでPLTファイルを開けない
・カンマ区切りのデータファイルの8列目のデータ読めない
・2つの図を1つのウィンドウに記述する方法
・図の大きさを一定にする方法
・グラフ上にx軸方向およびy軸方向の直線を引く方法
・グラフ片隅に表示されるマウスポインタの座標を非表示にする方法
・グラフのタイトルを表示する方法
・横軸のデータが日付のデータの場合
・ユーザ関数の定義
・一列の一部の行のデータのみグラフ表示する方法
・Sample plt file ( for Download )
・gnuplot ver4.0.0のダウンロード方法
Step1 gnuplot homepageからfor downloadのページへ移動.
Step2 Gnuplot on sourceforge, section Files をクリックしてsourceforgeへ移動.
Step3 version 4.0.0のgp400w32.zipをクリック.
Step4 最寄のHostのDownloadをクリックしてgp400w32.zipをダウンロード.
Step5 gp400win32.zip を解凍.
Step6 \gnuplot\bin 内にある wgnuplot.exe のショート・カットを作成.
・コマンドウィンドウ画面のフォントサイズ変更方法
コマンドウィンドウ画面上で左クリック(左きき仕様の場合)をして
Choosefontを選択しfontサイズを変更.
・コマンドウィンドウ画面でコマンドでディレクトリを変える方法
コマンドウィンドウ画面上でcd "..",cd "C:\\gnuplot"等の入力をする.
・別のディレクトリにあるデータファイルからデータを読み込みグラフ記述する方法
plot "C:\\mywork\\test.dat" 等 plot の後の””の中にディレクトリ記述すればOK
このとき\\(もしくはバックスラッシュ)が2つ必要.
・データファイル読込みについて
拡張子が*.datでなくても読込み可能.
タブ区切りであれば
plot "C:\\mywork\\test.dat" using 1:3
等入力すれば1列目データX軸,3列目データY軸としてデータ読み込まれグラフ記述.
カンマ区切りのデータの場合は書式指定が必要となる.
(例)plot "C:\\mywork\\test.dat" using 1:2 '%lf,%lf'
1列目データX軸,2列目データY軸としてデータ読み込まれグラフ記述.
使わないデータについても書式指定に含める必要あり.
(例)plot "C:\\mywork\\test.dat" using 1:3 '%lf,%lf,%lf'
1列目データX軸,3列目データY軸としてデータ読み込まれグラフ記述.
ただし
set datafile separator ","
と設定しておけば'%lf,%lf,%lf'のような書式設定は不要.
スペース区切りの場合,各列間に確実にスペースがない場合はダメ.
データのほかに文章を含んでいる場合は#or%を行先端に記述すると
その行はREM文として認識する.
ファイル名にチルダー(〜)を含んでいるとGNUPLOTでは読み取れないので注意すること.
・スタイルの設定
withをつけてwithの後にスタイルを記述
plot "C:\\mywork\\test.dat" using 1:3 with lines
とすれば線で表したグラフとなる.
線のスタイルを自動ではなく自分で設定したいときは,with lineのあとに数字をつけると
その番号に相当するスタイルを割り付けられる.
スタイルの詳細については
数学・ソフトウェア関係リンクを参照のこと
・重ね書き
plotの後に,を付加して更にplot文の後に記述したものと同様の記述をする.
(例) plot "output.dat" using 1:2 with lines, \
"output.dat" using 1:4 with lines
\は改行後も同じコマンドとして処理するという意味.
参照するデータファイルが同じ場合は
plot "output.dat" using 1:2 with lines, \
"" using 1:4 with lines
のように記述してもよい.
・凡例
title " "というコマンドを使う.
(例) plot "C:\\mywork\\test3.csv" using 1:3 '%lf,%lf,%lf'title "x_ref" with lines
代わりにnotitleというコマンドを使うと凡例はなし.
(例) plot "C:\\mywork\\test3.csv" using 1:3 '%lf,%lf,%lf' notitle with lines
・各軸のラベル
グラフ記述前にset xlabelとset ylabelを用いる.
(例)set xlabel "time [msec]"
set ylabel "position [m]"
replot
replotをその後使うと,前回記述したグラフを再度記述する.
また
set xlabel "time [msec]" 10, 20
のようにするとX軸方向に10,Y軸方向に20ラベルの表示位置を
オフセットさせることができる.
・グラフ上で日本語を使う方法
グラフ記述後,タスクバーの左上をクリックしOptionsを選択.
日本語に対応したフォント(例えばMS明朝等)を選択すれば日本語で表現できる.
右クリックしてUpdate wgnuplot.iniを更新すれば次回からデフォルトで設定される.
コマンドウィンドウ上で左クリック(左利き仕様)でChoose fontを選択し,
同様に日本語に対応したフォント(例えばMS明朝等)を選択すれば
コマンドウィンドウ上でも日本語の表現可能.
・範囲の設定
グラフ記述前にset xrangeとset yrangeを用いる.
(例)set xrange [0:2]
set yrange [0:1]
replot
・目盛りの設定
グラフ記述前にset xticsとset yticsを用いる.
(例)set xtics 1
set ytics 0.1
ただし,ここで 5*10^(-6)といった表現は無効.5e-6という表現ならOK
目盛りの桁数の設定はset formatを用いる.
(例)set format y "%10.3f"
・グリッドの設定
set gridでOK
gridの色を変更するときは
graphの左上をクリックして,Options→LineStyles→Axisの色を変更することにより
変更可能.
・線の色の変更
グラフ記述後,タスクバーの左上をクリックしOptionsを選択.
line stylesを選択し,線の色を変更することが可能.
線の色をコマンドで変更する場合の例
ライン2にライン3の色を用いたい場合
set style line 2 lt 3
のように設定しておき
with lines
の後で
with lines linestyle 2
のようにすればよい.
・線の太さの変更
グラフ記述後,タスクバーの左上をクリックしOptionsを選択.
line stylesを選択し,Widthの値を大きくすると太くなり小さくすると細くなる.
withでpointなどを選択している場合,ver3.7.3ではOptionでWidthの値を変更しても
太さが変わらないが,ver4.0.0ではOptionでWidthの値を変更すると太さを調整する
ことができる.
線の太さをコマンドで変更する場合
ライン2の太さを2倍にしたい場合
set style line2 lw 2
とし
with lines
の後で
with lines linestyle 2
のようにすればよい.lwの設定はltの後にすること.
・線の種類の変更
with lines を with dots と変更すると破線になる.
また with linespoint に変更することにより線と点を両方用いた記述となる.
linespointを用いるときは
set style line 24 lt 4 lw 0.5 pt 1 ps 0.3
とすることによりptで点の種類を変更でき,psで点の大きさを変更することができる.
・第2軸を用いる場合
グラフ記述前にset y2rangeを使って範囲を指定し,
axisを用いて第1軸を用いるか第2軸を用いるかを指定する.
(例)set xrange [0:2*pi]
set yrange [-1:1]
set y2range [0:1]
plot sin(x) axis x1y1, \
sin(x)**2 axis x1y2
第2軸の目盛が表示されないときは
set y2tics
を用いると表示されるようになる.
・凡例の位置
set keyコマンドを用いる.
set key belowで画面外下側に凡例表示
同様に
left 左側
right 右側
top 上側
bottom 下側
outside 図の右側の外
で凡例を表示する場所を変更することができる.
gnuplot ver4.0.0ではset key belowのとき凡例名が長いと表示されなくなる.そんなときは
set key screen 0.75, screen 0.2
のように直接,凡例を表示する場所を指定すると凡例名が長くても表示される.
ゆえにsizeコマンドでグラフのサイズを調整して余白をつくり,余白部分に凡例を表示する場所を
指定することで解決できる.また,この方法によりグラフサイズが凡例のために小さくなってしまう
問題も回避できる.
複数の凡例があるときに,凡例の行間隔(spacing)や幅(width)を
set key screen 0.75, screen 0.2, spacing 1 width 2
のようにして調整することができる.
この方法を用いて,例えば2行1列で表示されているものを1行2列の表示となるように調整すること
もできる場合がある.
・ラベル等の添字の表示
GNUPLOT+を使うとTex同様の表現ができるらしいが未確認.
u(へいほうめーとる)等の日本語の漢字変換で表現する方法
でも対処できるものもある.
・対数目盛
set format y "%3.2t×10^(%L)"
のように設定.3桁小数(小数点以下2桁)×10^(整数)の表現となる.
set format y "%3.2tE%L"
でもOK.
・グラフのコピー
グラフ記述後,タスクバーの左上をクリックしOptionsを選択.
Copy to Clibboardを選択.
後はWord等で貼り付けすれば,エクセルのグラフと同様にグラフ貼付け可能
・バッチ処理
テキスト形式の*.pltファイルにコマンドウィンドウに記述するのと同様に
コマンドを記述.
load "*.plt"でコマンドウィンドウに記述するのと同様の処理を実行する.
・バッチファイルのREM文
#を用いると,データファイルもバッチファイル上もコマンドウィンドウ上でも,その行が
REM文として認識される.
ただし,set文で指定した内容はそのまま行き続けるのでreset文を使って解除する必要がある.
また,#を用いた行の終わりに,\があると次の行もREM文とみなされてしまうので注意.
・グラフの保存方法について
@手作業による保存
グラフを右クリックしてCopy to Clipboard を選択.
続いてアクセサリでペイントを起動.
貼付けでペイントに貼付け.
jpeg等で保存.
Agif形式による出力
set terminal gif
set output 'ファイル名.gif'
とするとgif形式のファイルにカラーで出力される.
イメージングでファイル開ける.ただし,Wordに図として直接挿入不可.
gnuplot version 3.8からはサポートなし.
Bpng形式による出力
set terminal png color
set output 'ファイル名.png'
plot文
set output
とするとpng形式のファイルに出力.インターネットエキスプローラ等で開ける.
Wordに図として直接挿入も可.ただし,plot文の後のset outputがないと
共有違反となってWord図に挿入不可,フォトエディター等で開くのも不可.
Wordに貼り付けるときはCopy to Clip board の後,ペイントブラシなどに貼り付けて
JPEGにして保存してから挿入するよりも,直接貼り付けたほうがきれいに貼り付けられる.
ABについて
set terminalで出力をデフォルトに戻したいときは
set termial windowsとする.
Cpltファイル(バッチファイル)を保存する
データファイルと同じディレクトリにpltファイルを置いておき
ファイル名をどのデータファイルに対応するものかを明らかにしておく.
gnuplotを起動させ,アイコンの「開く」を選択し,pltファイルを選択すれば
グラフを再現することができる.
pltファイルの中身を変更すればグラフを修正することも可能なので,この方法が
保存方法としては最適.
・グラフを複数のウィンドウで表示する方法
Gnuplotを表示させたいウィンドウの数だけ起動させる.
1つのGnuplotにつき1つのグラフを表示させる.
・ディレクトリ名に日本語含むとOPENでPLTファイルを開けない.
ファイル名に日本語含まれている場合,Openボタンでファイルを選択して実行はできないが
コマンドウィンドウで
load 'D:\gnuplot\2Nkfi6kfp0_48w(日本).plt'
のように直接記述してEnterすればpltファイル実行できる.
ただし,予めコマンドウィンドウ上で
cd 'ディレクトリ名'
と入力してファイルのあるディレクトリまで移動する必要がある.
エキスプローラでディレクトリ名をコピーしコマンドウィンドウ上で左クリックでPaste
するのが便利.
(その場合はloadコマンドにディレクトリ名をつけなくても良い)
cdもディレクトリ名に日本語を含んでいるときはコマンドウィンドウ上で実行しなければならない.
cdボタンを使っての実行はできない.
エクスプローラ上でファイル名を選択後,少し時間をあけてからもう一度クリックすると
名前が変更できる状態になる.このとき左クリックするとファイル名をコピーすることができるので
これをgnuplot上に貼り付けると良い.
・カンマ区切りのデータファイルの8列目のデータ読めない.
'%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf'
と%lfが8列続いた書式のとき
「メモリがReadになることはできませんでした」
の文が表示され,GNUPLOT終了.
(たとえ読み込むのが7列目のデータだったとしても同じ.)
この場合
・データ点数を減らしても同じエラー
・各データの桁数を下げても同じエラー
このようなときは必要ない列を無視する.
plot "040219_02.csv" using $1:$2 '%lf,%*lf,%lf,%*lf,%*lf'
のように%とlfの間に*をつけるとその部分は無視される.
→このようにすればcsv形式のファイルをいちいちtxt形式等に直す必要がない.
・2つの図を1つのウィンドウに記述する方法
@先ず
set terminal windows
をやめて
set multiplot
を設定する.
A次に
set size 1,0.5
等,2つの図のサイズを規定する.
B更に,原点の指定
set origin 0,0.5
等の設定を行う.
Cその後,各設定を行いplot
D各図に対してA〜Cの設定を行う.
消去したいラベルについては
set xlabel ""
のように設定しなおす.
設定していないものについては先にplotした図の設定が
そのまま使われる.
E最後にset nomultiplotの設定を行う.
1つ目の図にはY軸を2軸用いて,2つ目の図にはY軸を1軸のみ用いる場合
2つ目の図の設定時にダミーとして
set y2label ""
set format y2 ""
set y2range [0:0]
と記述する.
・図の大きさを一定にする方法
marginを指定する.
set lmargin 10
set bmargin 3
set rmargin 2
set tmargin 1
・グラフ上にx軸方向およびy軸方向の直線を引く方法
x軸に平行な線
plot 0.01 notitle
plot 0.01 notitle, 0.011 notitle
等で引ける.
データファイルの線と重ね書きしたい場合は
plot 0.01 notitle, 0.011 notitle,\
"test3.csv" using 1:2 '%lf,%lf' with lines
のように使う.
Y軸に平行な線はx軸に平行な線を記述するようには記述できない
故に,Y軸に平行な線の両端の点を示すデータファイルを準備する.
そして,通常のデータファイルと同様に記述する.
ただし,グラフの表示範囲を設定した場合,両端の点は
グラフの外に出てはならない.外に出ると線が記述されない.
・グラフ片隅に表示されるマウスポインタの座標を非表示にする方法
pltファイルを用いてバッチファイル処理をした場合に
Gnuplot3.7.3だとグラフ左下に何も表示されないのに
Gnuplot4.0.0だとグラフ左下に"x = ,y = "etcなどの表示がされる.
これを非表示にする方法はpltファイルの最初に
unset mouse
と入力する.
・グラフのタイトルを表示する方法
set title "あいうえお" 0,-25
のように入力するとグラフ上部中央からX軸方向に0,Y軸方向に-25
オフセットした場所に"あいうえお"と表示される.
・横軸のデータが日付のデータの場合
日付のデータがyyyy/mm/ddといった形式の場合
set xdata time
set timefmt "%Y/%m/%d"
set format x "%m/%d"
のように設定し,ラベルは
set xlabel ""
set xrange ["2007/08/02":"2007/10/20"]
set xtics 60*60*24*5
のように設定する.
ただし,xticsは秒刻みで指定し,()では囲まない.
plot文のusingにおける列指定では()を用いないこと.
また,データファイルがCSVファイルの場合は予め
set datafile separator ","
と設定しておき,書式指定を用いないこと.
例)plot "sample.csv" using 1:2 with lines
・ユーザ関数の定義
ユーザ関数定義は
関数名(変数)= 関数の内容
としてそのまま記述して定義する.
例) f(x) = 2 * x + 3
f(x,y) = 2*x + y
条件文を用いたユーザ関数の定義は
関数名(変数)=(条件文)? 偽の場合の出力:真の場合の出力
としてそのまま記述して定義する.
例) f(x)=(x <= 1.0)? x:0
f(x1,x2) = ( (abs(x1) <= 10) && (x2 == 0) )? 1:0
定義した関数をplot文中で用いるときは
plot "sample.csv" using ($1):(f($2)) '%lf,%lf' with lines
のようにカッコをつけて用いる.
・一列の一部の行のデータのみグラフ表示する方法
plot "test.csv" using ($1):($3) every ::1 title "data1" with lines
のようにすると,2行目からのデータ表示.
plot "test.csv" using ($1):($3) every 1 title "data1" with lines
のようにすると,1行おきにデータ表示.
plot "test.csv" using ($1):($3) every ::1::3 title "data1" with lines
のようにすると,2行目から4行目までのデータ表示.
Sample plt file ( for Download )
・グラフ記述のサンプル.
・Y軸に第2軸を用いたグラフを記述する.
・1つのウィンドウに3つのグラフを記述する.
・Bode線図を記述する.
・x軸が日付yyyy/mm/ddとなっているtxt形式のデータをグラフ化する.
・x軸が日付yyyy/mm/ddとなっているcsv形式のデータをグラフ化する.
・株価チャートのグラフ例.
| |