[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#menu(howto/MenuBar)
* howto/gnuplot [#t270cd76]
#contents
** 一行メモ [#j8fe0a8a]
- set size ratio -1 #縦横のアスペクト比を等しくする -- ...
- set size noratio #もとにもどす
#comment
//-------------------------------------------------------...
* gnuuplot [#m8df4caa]
gnuplotは数値データを様々な形で可視化できる、広く利用され...
コマンド入力により、ファイルのデータをグラフにしたり、
スクリプト(プログラム)を使って同様のことや、もっと複雑...
可視化も2次元だけでなく、3次元やアニメーションも可能で...
gnuplot [オプション] [スクリプト ...]
のように実行する。スクリプト無しで実行すると、コマンド入...
プロンプトgnuplot> が表示される。スクリプトを複数与えると...
スクリプトとして - を与えるとコマンド入力となる。
//-------------------------------------------------------...
** 基本的な例 [#hb9cfd9f]
スクリプト無しで gnuplotを実行し、関数やデータファイル(数...
以下のようなことができる。
gnuplot> plot sin(x) #2次元のグラフを描く
gnuplot> splot sin(x)*y**2 #3次元のグラフ, **2...
gnuplot> set hidden3d; replot #陰影処理する
gnuplot> set isosamples 20; replot #描画のプロット点を...
gnuplot> v=1 #変数定義
gnuplot> f(x)=cos(x)+v #関数定義
gnuplot> plot f(x) with linespoints #withを使って直線...
gnuplot> set xrange[-pi:pi]; replot #x軸の範囲指定、pi...
gnuplot> plot sin(x), f(x) with linespoints #複数を描く
gnuplot> print 'hello', 'Hello' . 'Gnu', 'v=', v, 'f(3.1...
#表示、ピリオドは文字列を結合させる演算子、...
gnuplot> pause -1 #ENTER待ち(注: ENTER以外は押さない、...
gnuplot> quit #終了
コメント: バージョンにもよるが、マウスやキーボードで
グラフの拡大縮小や回転が可能である([[下記>#zf2a6c51]]参...
次の data1.txtというデータファイルがあるとする。
# A B C
0 0 0
1 1 1
2 4 3
3 9 5
4 11 4
5 3.5 2
6 miss 1 #無効
7 0.5 0.5
8 0.2 0.2
7 2 2
このとき、
gnuplot> plot 'data1.txt' using 1:2 with linespoints ...
gnuplot> splot 'data1.txt' using 1:2:3 with linespoints
gnuplot> plot 'data1.txt' using 1:($2-1.5) with linespoi...
コメント: #から右はコメント扱い。文字列があるとグラフ描画...
欠損値を明示するときは NaN文字列を入れる(NaNの場合は両側...
($2-1.5)のように列の値に演算した結果も利用できる(無効な...
演算にはsinなど組込み関数も利用可。
//-------------------------------------------------------...
** png画像として保存 [#f2311cea]
gnuplot> show terminal #出力されるターミナルタイプを覚...
terminal type is qt 0 font "Sans,9"
gnuplot> set terminal png
gnuplot> show output
output is sent to STDOUT
gnuplot> set output 'picture.png' #出力先を変更。既存フ...
gnuplot> replot #再プロットさせ、outp...
gnuplot> set output #出力を標準出力に戻す
gnuplot> set terminal qt
コメント: pngの他に eps形式など様々なフォーマットで出力で...
なお、terminalの種類により使われるフォントが同じではない...
モニタ画面で見ていた通りの png画像が得られるわけではない...
replotではなくコマンドを打って調整する)。
//-------------------------------------------------------...
** スクリプト [#s2b0da07]
スクリプトは単に、実行する gnuplotのコマンドを並べたもの...
よく使われている)。コマンド入力からスクリプトを実行する場...
gnuplot> load 'script.gp'
また、
gnuplot -e "f='hoge.txt'" script.gp -
で実行すると、スクリプトの中で変数 fが使えるし、そのスク...
引き続きコマンド入力待ちになる。
コマンドはセミコロンで並べて書ける。
a=1; b=2; print a, b
フロー制御は次のようなものなどがある。
do for [ i = 1:5 ] {
print i
}
do for [ f in 'aa.dat b.dat c.dat'] {
print f
}
if (a > 0) {
print 'plus'
} else {
print 'minus'
}
//-------------------------------------------------------...
** 諸設定 [#m1e2dc85]
*** 略称 [#e244c2d8]
いろいろな単語について、略称が使える。以下は例である。
using -> u
with lines -> w l
with linespoints -> w lp
linewidth -> lw
pointsize -> ps
*** ライン幅やマーカーの大きさ [#z0d0932b]
lw 2 #ライン幅 2にする
ps 2 #マーカーの大きさを 2にする
plot 'data.txt' u 1:2 w lp lw 2 ps 2 #のように使う
([[下記>#q00660ce]]を参照)
*** グラフの軸などの設定 [#mda7a004]
set title 'タイトル' #グラフのタイトル
set xlabel 'らべる' #横軸のラベル
set ylabel 'らべる' #縦軸のラベル
set xtics rotate by -90 #目盛の数字を-90°回す;もとに戻...
set format y '%.2f' # y軸の表示形式の指定
show format # 目盛の表示形式の確認表示
set format y '10^{%T}' # 目盛を10のべき乗で表示
set format y '% h' # 目盛りの表示を自動(デフォルト...
set yrange [*:*] ; replot #y軸範囲を自動設定に戻す、x軸...
set ytics 0.3 #y軸の主目盛を0.3間隔にする、x軸につ...
set ytics autofreq #y軸の主目盛を自動に戻す
set mxtics 2 #x軸の副目盛数
set mytics 2 #y軸の副目盛数
set grid ; replot #方眼グリッドを引く
set grid mytics; replot #副目盛りにも方眼グリッドを引く
set logscale y #対数グラフにする。戻すときは unset lo...
*** データ読込(every句) [#n5c25153]
データファイルが空行でいくつかのブロックに分かれていると...
通常 plot 'data.txt' using 1:2 などでは空行を無視し、すべ...
しかし every句を用いると、特定のブロックだけをプロットす...
例) plot 'data.txt' every ::0:block::block using 1:2 な...
block番目のブロックの、すべての行を最初から飛ばさず(...
every 行刻み:ブロック刻み:初期行:初期ブロック:終了行...
行刻み 何行毎に飛ばすか (指定無しは飛ばさな...
ブロック刻み 何ブロック毎に飛ばすか(指定無しは飛ばさな...
初期行 何行目から使うか (指定無しは最初の0行...
初期ブロック 何ブロック目から使うか(指定無しは最初の0ブ...
終了行 何行目まで使うか (指定無しは最後の行...
終了ブロック 何ブロック目まで使うか(指定無しは最後のブ...
各ブロックについて、何行目から何行目までを使うかの指定も...
行刻みを指定することで 10行おきに使うようにもできる。
*** 関数の定義 [#w0200658]
例)
deg(x)=180.0/pi*x
rad(d)=pi/180.0*d
*** 別プログラムの標準出力を読み込む [#jd07653a]
リダイレクションのようなこともできる。
Linuxコマンドを利用して data.txtの先頭と末尾の何行かを除...
次のようにする。
plot '< cat data.txt | tail -n +5 | head -n -2'
** x軸が時刻のときのプロット [#ma84f32c]
例えばデータファイル内で
2026/03/03 6:55, -1190
2026/03/03 7:15, -1173
2026/03/03 7:45, -1143
...
のようなcsv形式のデータファイルがあるとする。
デフォルトでは空白(連続するスペースとタブ)を区切りとして...
カンマ区切りで読むために
set datafile separator "," #元に戻すには unset datafi...
とします。
次に時刻のフォーマットを予め与えておきます。
%Yは4桁の西暦、%Hは24時間表記での時間、などを意味しま...
set timefmt "%Y/%m/%d %H:%M"
そして、x軸(横軸)の値を時刻データとして解釈するために
set xdata time #元に戻すには unset xdata
とします。以上をした後で、plot u 1:2 で通常通りグラフを描...
//-------------------------------------------------------...
** 色名の一覧・線の太さやマーカーの例 [#q00660ce]
〇 色の一覧 (Color-name and point-shapelists for gnuplot ...
[[こちら>http://www.ss.scphys.kyoto-u.ac.jp/person/yoneza...
////1000x800を30%としたいが、なぜか効かない。
//#ref(http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa...
//#ref(http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa...
//#ref(http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa...
//#ref(colorname-list2modthumb.png,left,nowrap) //効く
[[&ref(colorname-list2modthumb.png,left,nowrap);>http...
〇 線の太さやマーカ~
これは gnuplot> test で得られる図である(環境依存)。
#ref(linepointstyles_bygnuplot.png,left,30%,nowrap)
線やマーカーの指定例(with lines や with linespoints のオ...
lt 0 点線, lw 2 太線
pt 2 ×印, ps 2 大きい印サイズ
pt 6 ○印, ps 1 デフォルトの印サイズ(環境依存)
pt 1 +印, ps 0.5 整数でなくてもよい
//-------------------------------------------------------...
** gnuplotのグラフウィンドウ上での操作コマンド [#zf2a6c51]
gnuplot 4.6 patchlevel 6 の場合のアイコンメニュー
#ref(gnuplot_menu_icon.png,left,100%,nowrap)
拡大縮小: Ctrl+マウス中ホイール、 - と +,= キーでも可(...
上下移動: マウス中ホイール、↑,↓キーでも可
左右移動: Shift+マウス中ホイール、←,→キーでも可
座標表示: マウス中クリック(デフォルトではグラフの拡大...
枠非表示のトグル: b
ルーラー表示のトグル: r キー(カーソルのある位置に表示)
操作方法の表示: hキー(端末に表示)
前の表示/次の表示へ戻る/進む: p,n(下図のアイコン -,+...
最初の表示に戻る: u
マウスで囲んだ領域を拡大表示: マウス右ドラッグ後、左ク...
(ヒント:pキーで元に戻り...
[ref] https://yutarine.blogspot.com/2019/06/gnuplot-keybo...
//-------------------------------------------------------...
** 練習問題 [#h3a0f29e]
(1) x軸を 0~360° として sin(x) と cos(x) のグラフを plot...
このとき角度からラジアンへの変換は関数を定義して利用する...
また、タイトル、x軸ラベル、y軸ラベルなどもいろいろ設定し...
(2) データファイル demowav-x.txt には x軸上を右に進む自由...
入っています。少しずつ時刻が進んだ波が空行で区切られてブ...
いくつかのブロックについて、波動関数の形を plotしてみる。...
(データファイルの1列目はx座標の値、2列目と3列目は波動...
(2) データファイル pparking.csv には3月から5月中旬にか...
が入っています(ただし、マイナス符号が付いています)。
x軸を時刻にして、空き台数を plotしてみる。空き台数が少な...
//-------------------------------------------------------...
終了行:
#menu(howto/MenuBar)
* howto/gnuplot [#t270cd76]
#contents
** 一行メモ [#j8fe0a8a]
- set size ratio -1 #縦横のアスペクト比を等しくする -- ...
- set size noratio #もとにもどす
#comment
//-------------------------------------------------------...
* gnuuplot [#m8df4caa]
gnuplotは数値データを様々な形で可視化できる、広く利用され...
コマンド入力により、ファイルのデータをグラフにしたり、
スクリプト(プログラム)を使って同様のことや、もっと複雑...
可視化も2次元だけでなく、3次元やアニメーションも可能で...
gnuplot [オプション] [スクリプト ...]
のように実行する。スクリプト無しで実行すると、コマンド入...
プロンプトgnuplot> が表示される。スクリプトを複数与えると...
スクリプトとして - を与えるとコマンド入力となる。
//-------------------------------------------------------...
** 基本的な例 [#hb9cfd9f]
スクリプト無しで gnuplotを実行し、関数やデータファイル(数...
以下のようなことができる。
gnuplot> plot sin(x) #2次元のグラフを描く
gnuplot> splot sin(x)*y**2 #3次元のグラフ, **2...
gnuplot> set hidden3d; replot #陰影処理する
gnuplot> set isosamples 20; replot #描画のプロット点を...
gnuplot> v=1 #変数定義
gnuplot> f(x)=cos(x)+v #関数定義
gnuplot> plot f(x) with linespoints #withを使って直線...
gnuplot> set xrange[-pi:pi]; replot #x軸の範囲指定、pi...
gnuplot> plot sin(x), f(x) with linespoints #複数を描く
gnuplot> print 'hello', 'Hello' . 'Gnu', 'v=', v, 'f(3.1...
#表示、ピリオドは文字列を結合させる演算子、...
gnuplot> pause -1 #ENTER待ち(注: ENTER以外は押さない、...
gnuplot> quit #終了
コメント: バージョンにもよるが、マウスやキーボードで
グラフの拡大縮小や回転が可能である([[下記>#zf2a6c51]]参...
次の data1.txtというデータファイルがあるとする。
# A B C
0 0 0
1 1 1
2 4 3
3 9 5
4 11 4
5 3.5 2
6 miss 1 #無効
7 0.5 0.5
8 0.2 0.2
7 2 2
このとき、
gnuplot> plot 'data1.txt' using 1:2 with linespoints ...
gnuplot> splot 'data1.txt' using 1:2:3 with linespoints
gnuplot> plot 'data1.txt' using 1:($2-1.5) with linespoi...
コメント: #から右はコメント扱い。文字列があるとグラフ描画...
欠損値を明示するときは NaN文字列を入れる(NaNの場合は両側...
($2-1.5)のように列の値に演算した結果も利用できる(無効な...
演算にはsinなど組込み関数も利用可。
//-------------------------------------------------------...
** png画像として保存 [#f2311cea]
gnuplot> show terminal #出力されるターミナルタイプを覚...
terminal type is qt 0 font "Sans,9"
gnuplot> set terminal png
gnuplot> show output
output is sent to STDOUT
gnuplot> set output 'picture.png' #出力先を変更。既存フ...
gnuplot> replot #再プロットさせ、outp...
gnuplot> set output #出力を標準出力に戻す
gnuplot> set terminal qt
コメント: pngの他に eps形式など様々なフォーマットで出力で...
なお、terminalの種類により使われるフォントが同じではない...
モニタ画面で見ていた通りの png画像が得られるわけではない...
replotではなくコマンドを打って調整する)。
//-------------------------------------------------------...
** スクリプト [#s2b0da07]
スクリプトは単に、実行する gnuplotのコマンドを並べたもの...
よく使われている)。コマンド入力からスクリプトを実行する場...
gnuplot> load 'script.gp'
また、
gnuplot -e "f='hoge.txt'" script.gp -
で実行すると、スクリプトの中で変数 fが使えるし、そのスク...
引き続きコマンド入力待ちになる。
コマンドはセミコロンで並べて書ける。
a=1; b=2; print a, b
フロー制御は次のようなものなどがある。
do for [ i = 1:5 ] {
print i
}
do for [ f in 'aa.dat b.dat c.dat'] {
print f
}
if (a > 0) {
print 'plus'
} else {
print 'minus'
}
//-------------------------------------------------------...
** 諸設定 [#m1e2dc85]
*** 略称 [#e244c2d8]
いろいろな単語について、略称が使える。以下は例である。
using -> u
with lines -> w l
with linespoints -> w lp
linewidth -> lw
pointsize -> ps
*** ライン幅やマーカーの大きさ [#z0d0932b]
lw 2 #ライン幅 2にする
ps 2 #マーカーの大きさを 2にする
plot 'data.txt' u 1:2 w lp lw 2 ps 2 #のように使う
([[下記>#q00660ce]]を参照)
*** グラフの軸などの設定 [#mda7a004]
set title 'タイトル' #グラフのタイトル
set xlabel 'らべる' #横軸のラベル
set ylabel 'らべる' #縦軸のラベル
set xtics rotate by -90 #目盛の数字を-90°回す;もとに戻...
set format y '%.2f' # y軸の表示形式の指定
show format # 目盛の表示形式の確認表示
set format y '10^{%T}' # 目盛を10のべき乗で表示
set format y '% h' # 目盛りの表示を自動(デフォルト...
set yrange [*:*] ; replot #y軸範囲を自動設定に戻す、x軸...
set ytics 0.3 #y軸の主目盛を0.3間隔にする、x軸につ...
set ytics autofreq #y軸の主目盛を自動に戻す
set mxtics 2 #x軸の副目盛数
set mytics 2 #y軸の副目盛数
set grid ; replot #方眼グリッドを引く
set grid mytics; replot #副目盛りにも方眼グリッドを引く
set logscale y #対数グラフにする。戻すときは unset lo...
*** データ読込(every句) [#n5c25153]
データファイルが空行でいくつかのブロックに分かれていると...
通常 plot 'data.txt' using 1:2 などでは空行を無視し、すべ...
しかし every句を用いると、特定のブロックだけをプロットす...
例) plot 'data.txt' every ::0:block::block using 1:2 な...
block番目のブロックの、すべての行を最初から飛ばさず(...
every 行刻み:ブロック刻み:初期行:初期ブロック:終了行...
行刻み 何行毎に飛ばすか (指定無しは飛ばさな...
ブロック刻み 何ブロック毎に飛ばすか(指定無しは飛ばさな...
初期行 何行目から使うか (指定無しは最初の0行...
初期ブロック 何ブロック目から使うか(指定無しは最初の0ブ...
終了行 何行目まで使うか (指定無しは最後の行...
終了ブロック 何ブロック目まで使うか(指定無しは最後のブ...
各ブロックについて、何行目から何行目までを使うかの指定も...
行刻みを指定することで 10行おきに使うようにもできる。
*** 関数の定義 [#w0200658]
例)
deg(x)=180.0/pi*x
rad(d)=pi/180.0*d
*** 別プログラムの標準出力を読み込む [#jd07653a]
リダイレクションのようなこともできる。
Linuxコマンドを利用して data.txtの先頭と末尾の何行かを除...
次のようにする。
plot '< cat data.txt | tail -n +5 | head -n -2'
** x軸が時刻のときのプロット [#ma84f32c]
例えばデータファイル内で
2026/03/03 6:55, -1190
2026/03/03 7:15, -1173
2026/03/03 7:45, -1143
...
のようなcsv形式のデータファイルがあるとする。
デフォルトでは空白(連続するスペースとタブ)を区切りとして...
カンマ区切りで読むために
set datafile separator "," #元に戻すには unset datafi...
とします。
次に時刻のフォーマットを予め与えておきます。
%Yは4桁の西暦、%Hは24時間表記での時間、などを意味しま...
set timefmt "%Y/%m/%d %H:%M"
そして、x軸(横軸)の値を時刻データとして解釈するために
set xdata time #元に戻すには unset xdata
とします。以上をした後で、plot u 1:2 で通常通りグラフを描...
//-------------------------------------------------------...
** 色名の一覧・線の太さやマーカーの例 [#q00660ce]
〇 色の一覧 (Color-name and point-shapelists for gnuplot ...
[[こちら>http://www.ss.scphys.kyoto-u.ac.jp/person/yoneza...
////1000x800を30%としたいが、なぜか効かない。
//#ref(http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa...
//#ref(http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa...
//#ref(http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa...
//#ref(colorname-list2modthumb.png,left,nowrap) //効く
[[&ref(colorname-list2modthumb.png,left,nowrap);>http...
〇 線の太さやマーカ~
これは gnuplot> test で得られる図である(環境依存)。
#ref(linepointstyles_bygnuplot.png,left,30%,nowrap)
線やマーカーの指定例(with lines や with linespoints のオ...
lt 0 点線, lw 2 太線
pt 2 ×印, ps 2 大きい印サイズ
pt 6 ○印, ps 1 デフォルトの印サイズ(環境依存)
pt 1 +印, ps 0.5 整数でなくてもよい
//-------------------------------------------------------...
** gnuplotのグラフウィンドウ上での操作コマンド [#zf2a6c51]
gnuplot 4.6 patchlevel 6 の場合のアイコンメニュー
#ref(gnuplot_menu_icon.png,left,100%,nowrap)
拡大縮小: Ctrl+マウス中ホイール、 - と +,= キーでも可(...
上下移動: マウス中ホイール、↑,↓キーでも可
左右移動: Shift+マウス中ホイール、←,→キーでも可
座標表示: マウス中クリック(デフォルトではグラフの拡大...
枠非表示のトグル: b
ルーラー表示のトグル: r キー(カーソルのある位置に表示)
操作方法の表示: hキー(端末に表示)
前の表示/次の表示へ戻る/進む: p,n(下図のアイコン -,+...
最初の表示に戻る: u
マウスで囲んだ領域を拡大表示: マウス右ドラッグ後、左ク...
(ヒント:pキーで元に戻り...
[ref] https://yutarine.blogspot.com/2019/06/gnuplot-keybo...
//-------------------------------------------------------...
** 練習問題 [#h3a0f29e]
(1) x軸を 0~360° として sin(x) と cos(x) のグラフを plot...
このとき角度からラジアンへの変換は関数を定義して利用する...
また、タイトル、x軸ラベル、y軸ラベルなどもいろいろ設定し...
(2) データファイル demowav-x.txt には x軸上を右に進む自由...
入っています。少しずつ時刻が進んだ波が空行で区切られてブ...
いくつかのブロックについて、波動関数の形を plotしてみる。...
(データファイルの1列目はx座標の値、2列目と3列目は波動...
(2) データファイル pparking.csv には3月から5月中旬にか...
が入っています(ただし、マイナス符号が付いています)。
x軸を時刻にして、空き台数を plotしてみる。空き台数が少な...
//-------------------------------------------------------...
ページ名: