[更新情報]

▽Go to footer

C 言語などから gnuplot を使うプログラミング事例です.

gnuplot + C:活用 目次

プログラム事例(MinGW Cから使う)

プログラム作成方針



2次元グラフ画像出力(普通軸・対数軸)

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.

両対数グラフ用入力データ書式

対数軸では軸の数値増分は自動で 0.1,1,10,100 ・・・として振り付けます.

 01 | EL-Centro
 02 | Period (sec),Response spectrum (gal)
 03 | L,0.01,10
 04 | L,1,10000
 05 | 200
 06 | 0.02,321.00549110268
 07 | 0.0206312169369368,320.270844250607
 08 | 0.0212823556149475,320.65628503045
・・・・・
普通軸グラフ用入力データ書式

普通軸では,軸の数値増分と書式を指定します.軸書式はC言語における書式と同じです.

 01 | Accelaration
 02 | time (sec),Accelaration (gal)
 03 | N,0,100,10,"%.0f"
 04 | N,-1,1,0.2,"%.1f"
 05 | 101
 06 | 0,0
 07 | 1,0.246215381
 08 | 2,0.472214312
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inpGRL.txt)および出力ファイル名(ここでは fig_GRL.png)を含むコマンドを実行します.出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccGRLN-png.exe gccGRLN-png.c
>gccGRLN-png inpGRL.txt fig_GRL.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
入力データファイル例(1):カンマ区切り
コマンド記述ファイル例(1)
出力図例(1)
入力データファイル例(2):カンマ区切り
コマンド記述ファイル例(2)
出力図例(2)


正規確率プロット画像出力(普通横軸・対数横軸)

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.y 軸は,0.1〜99.9% で固定です.

両対数グラフ用入力データ書式

対数 x 軸では軸の数値増分は自動で 0.1,1,10,100 ・・・として振り付けます.

 01 | Flowrate
 02 | Measurement (m^3/s)
 03 | L,1,1000
 04 | 25
 05 | 13.7
 06 | 48.1
 07 | 57.7
・・・・・
普通軸グラフ用入力データ書式

普通 x 軸では,軸の数値増分と書式を指定します.軸書式は C 言語における書式と同じです.

 01 | Volocity
 02 | Measurement (m/s)
 03 | N,0,10,1,"%.1f"
 04 | 24
 05 | 4.5
 06 | 4.3
 07 | 5.2
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inpHAZL.txt)および出力ファイル名(ここでは fig_HAZL.png)を含むコマンドを実行します.出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccHAZEN-png.exe gccHAZEN-png.c
>gccHAZEN-png inpHAZL.txt fig_HAZL.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
入力データファイル例(1):カンマ区切り
コマンド記述ファイル例(1)
出力図例(1)
入力データファイル例(2):カンマ区切り
コマンド記述ファイル例(2)
出力図例(2)


2次元グラフ画像出力(普通軸・対数軸)複数列入力対応

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.ここでは共通の x 値を有する y1, y2, y3 の3種類のプロットを重ね書きしています.x 軸・y 軸は共に普通軸での書式を示しています.

 01 | Heat transmission boundary
 02 | Time (hr),Temperature (deg.C)
 03 | N,0,1000,100,"%.0f"
 04 | N,0,50,10,"%.0f"
 05 | 1000,3
 06 | time,Node-1,Node-2,Node-3
 07 | 0.00E+00,2.00E+01,2.00E+01,2.00E+01
 08 | 1.00E+00,2.46E+01,2.54E+01,2.52E+01
 09 | 2.00E+00,2.76E+01,2.95E+01,2.90E+01
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inpGRPARATP.txt)および出力ファイル名(ここでは outGRPARATP.png)を含むコマンドを実行します.出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccGRPARA-png.exe gccGRPARA-png.c
>gccGRPARA-png inpGRPARATP.txt fig_GRPARATP.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
入力データファイル例:カンマ区切り
コマンド記述ファイル例
出力図例


単相関分析等確率楕円図化出力(普通軸・対数軸)

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.

両対数グラフ用入力データ書式
 01 | Log10 test data
 02 | x axis,y axis
 03 | L,0.1,10000
 04 | L,0.1,10000
 05 | 4,0.9
 06 | 4,Small
 07 | 1,1
 08 | 2,2
 09 | 1,2
 10 | 2,1
 11 | 4,Middle
 12 | 10,10
 13 | 20,20
 14 | 10,20
 15 | 20,10
 16 | 4,Large
 17 | 100,100
 18 | 200,200
 19 | 100,200
 20 | 200,100
 21 | 4,Big
 22 | 1000,1000
 23 | 2000,2000
 24 | 1000,2000
 25 | 2000,1000
普通軸グラフ用入力データ書式

普通x軸では,軸の数値増分と書式を指定します.軸書式はC言語における書式と同じです.

 01 | Comparison of climates
 02 | Rainfall (mm/month),Temperature (deg.C)
 03 | N,0,300,50,"%.0f"
 04 | N,-10,30,5,"%.0f"
 05 | 4,0.68
 06 | 12,Asahikawa
 07 |  74.1, -7.8
 08 |  51.5, -7.2
 09 |  54.1, -2.4
 10 |  55.8,  5.2
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inpDAEN_L.txt)および統計量出力テキストファイル名(ここでは outDAEN_L.txt)および出力画像ファイル名(ここでは fig_DAEN_L.png)を含むコマンドを実行します.出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccGRDAEN.exe gccGRDAEN.c
>gccGRDAEN inpDAEN_L.txt outDAEN_L.txt fig_DAEN_L.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
入力データファイル例(1):カンマ区切り
統計量保存ファイル例(1):カンマ区切り
コマンド記述ファイル例(1)
出力図例(1)
入力データファイル例(2):カンマ区切り
統計量保存ファイル例(2):カンマ区切り
コマンド記述ファイル例(2)
出力図例(2)


フーリエスペクトル計算・図化出力(普通軸・対数軸)

スペクトル比計算プログラム(gccCALFSR.c)での入出力力データ書式

サンプルプログラムのデータ書式は以下の通りです.

スペクトル比計算プログラムの波形入力データ書式(inp8000_EW1.csv)
 01 | 2008/06/14 08:43:00 IWTH25 地中EW Max.acc=747.922
 02 | dt,0.01
 03 | ndata,8000
 04 | 0.191
 05 | 0.19
 06 | 0.191
 07 | 0.193
・・・・・
スペクトル比計算プログラムの出力データ書式(out8000_EW.csv)

後ほど gnuplot で読み込めるよう,初めの 6 行は行頭に # を付けています.

 01 | # in1=,inp8000_EW2.csv
 02 | # in2=,inp8000_EW1.csv
 03 | # out=,out8000_EW.csv
 04 | # band=,1
 05 | # ndata=,4097
 06 | # frq,fs01,fs02,fsp1,fsp2,fsr
 07 | 0,0.00574687,0.000272524,56.8772,37.4307,1.51953
 08 | 0.012207,23.9102,3.83634,56.992,37.4935,1.52005
 09 | 0.0244141,4.46573,3.28742,57.3353,37.681,1.5216
・・・・・

スペクトル比図化プログラム(gccFIGFSR.c)での入出力力データ書式

入力ファイルのデータ書式は以下の通りです(inpFIGFSR.txt).入力ファイルは,作図用データ入力の手間を省くため,先頭4行に作図用パラメータをいれ,以下は作図枚数とスペクトルの格納されたファイルなどを指定するようにしました.出力は png 形式画像データです.

 01 | # gp.scomは未使用
 02 | Frequency (Hz),Fourier spectrum (gal*sec)
 03 | N,0,30,5,"%.0f"
 04 | L,0.1,1000
 05 | 3
 06 | Spectrum ratio EW,SF,UG,out8000_EW.csv,fig_out8000_EW.png
 07 | Spectrum ratio NS,SF,UG,out8000_NS.csv,fig_out8000_NS.png
 08 | Spectrum ratio UD,SF,UG,out8000_UD.csv,fig_out8000_UD.png

実行コマンド事例

コンパイル後,実行ファイル名に続いて,必要な入力ファイル名などを入力し実行します.以下はバッチファイルの例です.

 01 | rem gcc -o gccCALFSR.exe gccCALFSR.c
 02 | gccCALFSR 1.0 inp8000_EW2.csv inp8000_EW1.csv out8000_EW.csv
 03 | gccCALFSR 1.0 inp8000_NS2.csv inp8000_NS1.csv out8000_NS.csv
 04 | gccCALFSR 1.0 inp8000_UD2.csv inp8000_UD1.csv out8000_UD.csv
 05 | rem gcc -o gccFIGFSR.exe gccFIGFSR.c
 06 | gccFIGFSR inpFIGFSR.txt

プログラムと入出力事例

ファイル名概要
Cソースプログラム(スペクトル比計算)
Cソースプログラム(スペクトル比図化)
gnuplotコマンド記述ファイル例
出力図例(1)
出力図例(2)
出力図例(3)


ヒストグラム図化出力(普通軸・対数軸)

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.

x軸対数グラフ用入力データ書式
 01 | Log histgram test
 02 | data
 03 | 20
 04 | L,0.001,1000
 05 | 10000
 06 | 0.000948331
 07 | 1.445659452
 08 | 0.136212198
・・・・・
普通軸グラフ用入力データ書式

普通 x 軸では,軸の数値増分と書式を指定します.軸書式はC言語における書式と同じです.

 01 | Histgram test
 02 | data
 03 | 20
 04 | N,-5,5,1,"%.0f"
 05 | 10000
 06 | -3.02304
 07 | 0.160066
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inpHISTL.txt)および出力ファイル名(ここでは fig_HISTL.png)を含むコマンドを実行します.出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccHIST.exe gccHIST.c
>gccHIST inpHISTL.txt fig_HISTL.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
コマンド記述ファイル例(1)
出力図例(1)
コマンド記述ファイル例(2)
出力図例(2)


Simplex法による任意曲線回帰図化出力(普通軸)

/*減衰振動(mpara=4)*/
fx=parameter[0]*exp(-parameter[1]*x)*sin(parameter[2]*x+parameter[3]);

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.

普通軸グラフ用入力データ書式
 01 | Simplex_test_1
 02 | time (sec),Displacement (mm)
 03 | N,0,800,100,"%.0f"
 04 | N,-10,10,2,"%.0f"
 05 | 800
 06 | 0.000,2.543
 07 | 1.000,3.402
 08 | 2.000,2.978
 09 | 3.000,3.785
・・・・・

出力データ書式

サンプルプログラムの出力データ書式は以下の通りです.

普通軸グラフ用出力データ書式
 01 | iflag,0
 02 | iteration,405
 03 | parameter_0,5.11924
 04 | parameter_1,0.00500138
 05 | parameter_2,0.0631191
 06 | parameter_3,0.73389
 07 | datax,datay,y_est
 08 | 0,2.543,3.42868
 09 | 1,3.402,3.64337
 10 | 2,2.978,3.84139
 11 | 3,3.785,4.02212
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inpSIMP1.txt)および出力ファイル名(ここでは回帰結果テキスト:outSIMP1.txt と画像ファイル:fig_SIMP1.png)を含むコマンドを実行します.画像出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccSIMPLEX.exe gccSIMPLEX.c
>gccGRDAEN inpSIMP1.txt outSIMP1.txt fig_SIMP1.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
入力データファイル例:カンマ区切り
出力データファイル例:カンマ区切り
コマンド記述ファイル例(1)
出力図例


フーリエ級数展開による任意曲線回帰図化出力(普通軸)

入力データ書式

サンプルプログラムの入力データ書式は以下の通りです.

普通軸グラフ用入力データ書式
 01 |Sample_mm=1000
 02 |x-axis,y-axis
 03 |N,1000,8000,1000,"%.0f"
 04 |N,-5,30,5,"%.0f"
 05 |6299,1000
 06 |1000,11.3
 07 |1001,11.2
・・・・・

出力データ書式

サンプルプログラムの出力データ書式は以下の通りです.

普通軸グラフ用出力データ書式
 01 |Sample_mm=1000
 02 |6299
 03 |x,y,func
 04 |1.000000e+003,1.130000e+001,1.252506e+001
 05 |1.001000e+003,1.120000e+001,1.171718e+001
 06 |1.002000e+003,1.110000e+001,1.112053e+001
 07 |1.003000e+003,1.100000e+001,1.081004e+001
・・・・・

実行コマンド事例

コンパイル後,入力ファイル名(ここでは inp_mm1000.txt)および出力ファイル名(ここでは回帰結果テキスト:out_mm1000.txt と画像ファイル:fig_mm1000.png)を含むコマンドを実行します.画像出力ファイルの拡張子は「.png」に固定です.

>gcc -o gccFAPP.exe gccFAPP.c
>gccFAPP inp_mm1000.txt out_mm1000.txt fig_mm1000.png

プログラムと入出力事例

ファイル名概要
Cソースプログラム
コマンド記述ファイル例
入力データファイル例:カンマ区切り
出力データファイル例:カンマ区切り
出力図例(1)
出力図例(2)


岩盤内埋設式水圧鉄管の限界座屈圧力(普通軸)

プログラムと入出力事例

ファイル名概要
Cソースプログラム(Amstutz原典)
Cソースプログラム(水鉄基準)
コマンド記述ファイル例
限界座屈圧力計算式と計算結果


inserted by FC2 system