gnuplotの使い方ログ-3

gnuplotの使い方ログ-2

復習

ファイルの移動

cd "C:/Users/rerur/.wk/gnuplot/data"

ファイルの読み込み

plot "as.csv" using 1:2

複数行の使用

plot "as.csv" using 1:2

凡例の文字設定

plot "as.csv" using 1:2 title "{/Times:Italic r} = 10 k{/Symbol W}", "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}"

目盛り

set ticscale 4
 
set mxtics 2
set mytics 2
 
set xtics nomirror
set ytics nomirror

凡例の枠と大きさ

set key width 1 height 1 box

凡例の位置

set key bottom left at 1, -0.5

軸名称

set xlabel "{/Times:Italic V}_{s} (V)"
set ylabel "{/Times:Italic I}_{1}, {/Times:Italic I}_{2} (mA)"

統計情報

stats "as.csv" using 1:2

変数表示

show variables

傾き、切片、相関係数の退避

a1 = STATS_slope
b1 = STATS_intercept
r1 = STATS_correlation

a1 : 傾き
b1 : 切片
r1 : 相関係数

二個目

stats "as.csv" using 1:3
 
a2 = STATS_slope
b2 = STATS_intercept
r2 = STATS_correlation

Warning

statsコマンドを実行するたびに変数の値が上書きされるため、必要に応じて関数や変数に値を対比すること

関数の用意

関数を使用して自前の関数を定義

i1(x) = a1 * x + b1
i2(x) = a2 * x + b2

プロット

plot "as.csv" using 1:2 title "{/Times:Italic r} = 10k{/Symbol W}", i1(x) notitle, "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}", i2(x) notitle

Caution

グラフでホイールを動かすと直線が突き抜けてしまう。

決定係数

s1 = sprintf("{/Times:Italic R}_{1}^{2} = %.4f", r1 ** 2)

相関係数の2乗から決定係数を計算して、それを使用する。

二個目

s2 = sprintf("{/Times:Italic R}_{2}^{2} = %.4f", r2 ** 2)

回帰直線の式の作成

eq1 = sprintf("{/Times:Italic I}_{1} = %.4f{/Times:Italic V}_{s}%+.4f", a1, b1)
 
eq2 = sprintf("{/Times:Italic I}_{2} = %.4f{/Times:Italic V}_{s}%+.4f", a2, b2)

傾きと切片から直線の式を文字列にして変数 eq1eq2に代入
+をつけると符号ありになる。

決定係数の表示

set label eq1 at -3, 0.55
set label s1 at -3, 0.45
 
set label eq2 at -3, 0.3
set label s2 at -3, 0.2

このコマンドは使用するたびにラベルが生成されてしまう。

マーカ

マーカの確認

test

線種の変更

plot "as.csv" using 1:2 title "{/Times:Italic r} = 10k{/Symbol W}" pt 7, i1(x) notitle lt 1, "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W} pt 4", i2(x) notitle lt 2

コマンドファイル

実行内容の保存

save "as7-1.plt"

実行内容の読み込み

cd "C:/Users/rerur/.wk/gnuplot/data"
 
load "as7-1.plt"

グラフの出力

set term emf monochrome font "Times New Roman,24" enhanced lw 2
 
set output "fig2.emf"
replot

クローズ

set output

ターミナルを元に戻す

set terminal qt

一覧

cd "C:/Users/rerur/.wk/gnuplot/data"
plot "as.csv" using 1:2
plot "as.csv" using 1:2plot "as.csv" using 1:2 title "{/Times:Italic r} = 10 k{/Symbol W}", "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}"
set ticscale 4
 
set mxtics 2
set mytics 2
 
set xtics nomirror
set ytics nomirror
set key width 1 height 1 box
set key bottom left at 1, -0.5
set xlabel "{/Times:Italic V}_{s} (V)"
set ylabel "{/Times:Italic I}_{1}, {/Times:Italic I}_{2} (mA)"
stats "as.csv" using 1:2
a1 = STATS_slope
b1 = STATS_intercept
r1 = STATS_correlation
stats "as.csv" using 1:3
 
a2 = STATS_slope
b2 = STATS_intercept
r2 = STATS_correlation
 
i1(x) = a1 * x + b1
i2(x) = a2 * x + b2
 
plot "as.csv" using 1:2 title "{/Times:Italic r} = 10k{/Symbol W}", i1(x) notitle, "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}", i2(x) notitle
 
s1 = sprintf("{/Times:Italic R}_{1}^{2} = %.4f", r1 ** 2)
s2 = sprintf("{/Times:Italic R}_{2}^{2} = %.4f", r2 ** 2)
 
eq1 = sprintf("{/Times:Italic I}_{1} = %.4f{/Times:Italic V}_{s}%+.4f", a1, b1)
eq2 = sprintf("{/Times:Italic I}_{2} = %.4f{/Times:Italic V}_{s}%+.4f", a2, b2)
 
set label eq1 at -3, 0.55
set label s1 at -3, 0.45
set label eq2 at -3, 0.3
set label s2 at -3, 0.2
 
cd "C:/Users/rerur/.wk/gnuplot/data"
plot "as.csv" using 1:2
plot "as.csv" using 1:2plot "as.csv" using 1:2 title "{/Times:Italic r} = 10 k{/Symbol W}", "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}"
set ticscale 4
 
set mxtics 2
set mytics 2
 
set xtics nomirror
set ytics nomirror
set key width 1 height 1 box
set key bottom left at 1, -0.5
set xlabel "{/Times:Italic V}_{s} (V)"
set ylabel "{/Times:Italic I}_{1}, {/Times:Italic I}_{2} (mA)"
stats "as.csv" using 1:2
a1 = STATS_slope
b1 = STATS_intercept
r1 = STATS_correlation
stats "as.csv" using 1:3
 
a2 = STATS_slope
b2 = STATS_intercept
r2 = STATS_correlation
 
i1(x) = a1 * x + b1
i2(x) = a2 * x + b2
 
plot "as.csv" using 1:2 title "{/Times:Italic r} = 10 k{/Symbol W}", i1(x) notitle, "as.csv"  using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}", i2(x) notitle
 
s1 = sprintf("{/Times:Italic R}_{1}^{2} = %.4f", r1 ** 2)
 
s2 = sprintf("{/Times:Italic R}_{2}^{2} = %.4f", r2 ** 2)
 
eq1 = sprintf("{/Times:Italic I}_{1} = %.4f{/Times:Italic V}_{s}%+.4f", a1, b1)
 
eq2 = sprintf("{/Times:Italic I}_{2} = %.4f{/Times:Italic V}_{s}%+.4f", a2, b2)
 
set label eq1 at -3, 0.55
set label s1 at -3, 0.45
 
plot "as.csv" using 1:2 title "{/Times:Italic r} = 10 k{/Symbol W}" pt 7, i1(x) notitle lt 1, "as.csv" using 1:3 title "{/Times:Italic r} = 15 k{/Symbol W}" pt 4, i2(x) notitle lt 2
 

定型

ここから二枚目のpdf

データの読み込み

cd "C:/Users/rerur/.wk/gnuplot/data"
 
set datafile separator ","

データの区切り文字をコンマにするもの

Tip

gnuplotのデータの区切り文字のデフォルトは空白かタブのため, CSVファイル形式のデータを読み込む場合,上記の設定が必要!

プロット

plot "as.csv" using 2:1

名称の変更

set xlabel "{/Times:Italic I}_{1} (mA)"
set ylabel "{/Times:Italic V}_{s} (V)"

目盛り

set ticscale 4
 
set mxtics 2
set mytics 2
 
set xtics nomirror
set ytics nomirror

凡例

set key width 2 height 1 box

演算

軸名称を変更するもの。
y軸は1列目(電圧) × 2列目(電流)で電力の値となる。

set ylabel "{/Times:Italic P}_{1} (mW)"
plot "as.csv" using 2:($1 * $2) title "{/Times:Italic P}_{1}" pt 7

凡例の位置調整

set key bottom left at -0.4, 2.25
replot

回帰曲線を表す関数

p1(x) = a1 * x ** 2 + b1 * x + c1 

回帰曲線の式を

に設定する。

fit p1(x) "as.csv" using 2:($1 * $2) via a1, b1, c1

最小2乗法により、a1b1c1を求める。

回帰曲線の描画

set ylabel "{/Times:Italic P}_{1} (mW)"
plot "as.csv" using 2:($1 * $2) title "{/Times:Italic P}_{1}" pt 7, p1(x) notitle

p1(x)を凡例なしで描画する。

ファイルコマンド

save "as7-2.plt"

実行内容の読み込み

cd "C:/Users/rerur/.wk/gnuplot/data"
 
load "as7-2.plt"

グラフの出力

set term emf monochrome font "Times New Roman,24" enhanced lw 2
 
set output "fig3.emf"
replot

クローズ

set output

ターミナルを元に戻す

set terminal qt

課題補足

余白 - 狭い
フォントサイズ - 12pt

最初に名前と学生番号を記述
図を右クリックして、レイアウト設定から図のサイズを変更する。
縦横比を固定するにチェックを入れる。
比率を高さを55%にする。

キャプションを作成する。

そして中央寄せにする。

そして二枚目をドロップして再度縦の比率を変更する。
キャプションは

である。
中央寄せにする。

最後にpdfで出力して提出する。