今回はExcelではなくGnuplotを用いてグラフを作成しEPS出力する方法です。Gnuplotの基本的な使い方はこの記事では省略します、申し訳ありません。
まず最初にGnuplotを使ってコマンドを一気に通すためにスクリプトファイル(.plt)を作成する必要があります。適当なエディタを使ってもらって構いません。ただし最終的に.pltファイルの文字コードがEUCで保存できるエディタを使ってください。
さっそくGnuplotのコマンドを書いていきます。このコマンドに関しては「なみなみメモ様」
www6.atwiki.jp/naminami/pages/6.html
を参考にさせて頂きました。 情報ありがとうございます。
以下の例は一次遅れ系での例です。
set terminal postscript eps enhanced #保存名を決める set output "graph1.eps" #虚数単位jの定義 j={0.0,1.0} #伝達関数を定義(今回は一次遅れ系) G(s)=k/(T*s+1) #ゲインの定義 k=0.9 #時定数の定義 T=0.5 G1(x)=G(j*x) set angles degrees set format x "10^%01T" #ここで横軸を対数軸に set logscale x set xtics nomirror set ytics nomirror #ここからゲイン線図の定義 set multiplot set xlabel 'omega [rad/s]' set size 1.0,0.6 set origin 0.0,0.4 set ylabel 'Gain [dB]' #横軸の範囲 set xrange [0.1: 20] #縦軸の範囲 set yrange [-25:5] plot 20*log10(abs(G1(x))) title "douteikekka",\ "graph1.dat" using 1:2 with points pt 7 title "jikkenti" #.datファイルから実験値の読み込み(1:2の1は周波数データ列、2は実際に得られたゲインのデータ列) #ここから位相線図の定義 set size 1.0,0.4 set origin 0.0,0.0 set ylabel 'Phase [deg]' set ytics 45 #縦軸の範囲 set yrange [-120:0] plot arg(G1(x)) title "douteikekka",\ "graph1.dat" using 1:3 with points pt 7 title "jikkenti" #1:3の1は周波数データ列、3は実際に得られた位相のデータ列 unset multiplot set output set terminal windows #Mac,Linux の場合、次のように書き換え set terminal x11
![]() |
pltファイルの作成 |
![]() |
datファイルの作成 |
以上のソースをテキストエディタで記述し、「graph1.plt」等で保存します。文字コードをEUCにするのを忘れないようにします。
そして実験値をプロットするためのデータ群 .datファイルはExcelなどで実験データの整理をしなければなりません。datファイルはpltファイルと同じディレクトリに保存します(文字コードは「ANSI」または「Shift JIS」推奨)。
図のようにデータをエクセルで整理し、それをコピーしてテキストエディタに貼り付けてから「graph1.dat」等に名前をつけて保存するが簡単です。
ここまでの作業が終わったら、作ったpltファイルをダブルクリックするか、Gnuplotのコマンド
load ”graph1.plt”
を実行して、〜.epsのデータが出力されれば成功です(*´艸`*)
今回例で作った図は凡例が適当ですがお許し下さい。
![]() |
コマンド |
![]() |
完成! |
0 件のコメント:
コメントを投稿