WANtaroHP(gnuplot 編) 目次 | |||
---|---|---|---|
01:dvipdfmx で作成した pdf で png が薄い!(pdf) | -- | -- | -- |
02:gnuplotを用いた説明図作成(圧力水路断面設定) | VB | C# | gcc |
03:gnuplotを用いた説明図作成(2心円NATMトンネル断面設定) | VB | C# | gcc |
04:gnuplotを用いたグラフ作成(鉄管大型化の推移) | VB | C# | gcc |
05:gnuplotを用いた日本語グラフ作成(鉄管大型化の推移) | VB | C# | -- |
01 | rem バッチ・ファイルの例 02 | convert -density 300 fig_eps_z_PSHD.eps fig_png_z_PSHD.png 03 | convert -size 1500x1050 xc:"#FFFFFF" base.png 04 | convert base.png fig_png_z_PSHD.png -composite fig_png_zw_PSHD.png |
This is dvipdfmx-20100328 by the DVIPDFMx project team, an extended version of dvipdfm-0.13.2c developed by Mark A. Wicks. |
ファイル名 | 概要 |
---|---|
pdf-tex.pdf | 出力比較事例 |
出力ターミナルを postscript eps として,普通軸と極座標表示を multiplot で重ね合わせた図です. 設計図とまでは行きませんが,報告書の説明図としては使えると思います. このような図は Wo*d や Exc*l という訳には行かないでしょう.
ここでは,gnuplot 出力の eps 画像の BoundingBox を修正後,ImageMagik で png 画像にしています.TeX の文書であれば eps が良いのですが,PowerPoint や Wo*d に貼り付けざるを得ない場合もあり,png 化を試したものです. ImageMagick convert の -density の値は 300x300 程度以上の方が良さそうです.
サブルーチン一覧 | ||
Sub・関数名 | 使用 | 機能 |
main_part (C : main) | VB・C#・C | 制御部 |
GPL | VB・C# | gnuplot 起動+ eps ファイル作成 |
BBOX | VB・C# | gnuplot が作成した eps ファイルの BoundingBox 修正 |
IMCVT | VB・C# | ImageMagick:convert で eps を 透過 png 画像に変換 |
IMCMP | VB・C# | ImageMagick:convert で白背景と透過 png 画像を合成 |
VIEWPNG | VB・C# | png 画像の画面表示 |
CAL_AREA (function) | VB・C#・C | 断面積計算 |
CAL_LENG (function) | VB・C#・C | 周長計算 |
CAL_THETA (function) | VB・C#・C | 角度計算 (二分法) |
CAL_F (function) | VB・C#・C | 角度計算のための関数 |
WGPL | VB・C#・C | gnuplot コマンド記述ファイル書き出し |
AGR | VB・C#・C | 骨材記号書き出し |
CAL_XY | VB・C#・C | 骨材記号乱数座標試算 |
CAL_XYARRAY | VB・C#・C | 骨材記号座標確定(隣接座標と一定距離を確保) |
WGPLmodel | VB・C#・C | モデル用 gnuplot コマンド記述ファイル書き出し |
5 gpl_eps_Tmd.txt,fig_eps_Tmd.eps,-1, 6000, 2000, 1000, 7000, 500, 500, 130, 70, 350, 260 gpl_eps_HT1.txt,fig_eps_HT1.eps, 0, 8200, 550, 0, 6000, 100, 100, 140, 70, 350, 300 gpl_eps_HT2.txt,fig_eps_HT2.eps, 0, 6100, 550, 0, 5000, 100, 100, 140, 70, 350, 300 gpl_eps_PS1.txt,fig_eps_PS1.eps, 1, 5400, 600, 300, 5000, 100, 100, 140, 70, 350, 300 gpl_eps_PS2.txt,fig_eps_PS2.eps, 1, 3000, 500, 100, 3000, 100, 100, 140, 70, 350, 300 |
1行目は,作図するケース数,2行目以降はそれぞれ以下のデータです.鉄管厚はその他寸法に比べて小さいため,厚さ50mmで固定して描画しています.
gpl_eps_*.txt,fig_eps_*.eps,ksp,D0,Tc,Tx,W,ts,tp,BBx1,BBy1,BBx2,BBy2 |
入力データ記載例 | |
gpl_eps_*.txt | gnuplotのコマンド記述ファイル名 |
fig_eps_*.eps | gnuplotの出力epsファイル名 |
ksp | -1:モデル作図,0:鉄管無し,1:鉄管有り |
D0 | トンネル内径 |
Tc | 覆工厚 |
Tx | 覆工厚インバート部増分 |
W | インバート幅 |
ts | 吹付厚 |
tp | 設計掘削線から支払線までの厚さ |
BBx1 | eps切取範囲左下x座標 |
BBy1 | eps切取範囲左下y座標 |
BBx2 | eps切取範囲右上x座標 |
BBy2 | eps切取範囲右上y座標 |
C では,下に示すバッチファイルで gnuplot と ImageMagick を実行しています. ImageMagic の コマンド identify は作成した png 画像の情報を表示させています.
gcc -o gccTUNNEL-gnuplot.exe gccTUNNEL-gnuplot.c gcc -o gccBBOX.exe gccBBOX.c rem gccTUNNEL-gnuplot gpl_eps_Tmd.txt fig_eps_Tmd.eps -1 6000 2000 1000 7000 500 500 gccTUNNEL-gnuplot gpl_eps_HT1.txt fig_eps_HT1.eps 0 8200 550 0 6000 100 100 gccTUNNEL-gnuplot gpl_eps_HT2.txt fig_eps_HT2.eps 0 6100 550 0 5000 100 100 gccTUNNEL-gnuplot gpl_eps_PS1.txt fig_eps_PS1.eps 1 5400 600 300 5000 100 100 gccTUNNEL-gnuplot gpl_eps_PS2.txt fig_eps_PS2.eps 1 3000 500 100 3000 100 100 rem gnuplot "gpl_eps_Tmd.txt" gnuplot "gpl_eps_HT1.txt" gnuplot "gpl_eps_HT2.txt" gnuplot "gpl_eps_PS1.txt" gnuplot "gpl_eps_PS2.txt" rem gccBBOX fig_eps_Tmd.eps fig_eps_z_Tmd.eps 130 70 350 260 gccBBOX fig_eps_HT1.eps fig_eps_z_HT1.eps 140 70 350 300 gccBBOX fig_eps_HT2.eps fig_eps_z_HT2.eps 140 70 350 300 gccBBOX fig_eps_PS1.eps fig_eps_z_PS1.eps 140 70 350 300 gccBBOX fig_eps_PS2.eps fig_eps_z_PS2.eps 140 70 350 300 rem convert -density 300 fig_eps_z_Tmd.eps fig_png_z_Tmd.png convert -density 300 fig_eps_z_HT1.eps fig_png_z_HT1.png convert -density 300 fig_eps_z_HT2.eps fig_png_z_HT2.png convert -density 300 fig_eps_z_PS1.eps fig_png_z_PS1.png convert -density 300 fig_eps_z_PS2.eps fig_png_z_PS2.png rem identify fig_png_z_Tmd.png identify fig_png_z_HT1.png identify fig_png_z_HT2.png identify fig_png_z_PS1.png identify fig_png_z_PS2.png rem convert -size 917x792 xc:"#FFFFFF" base.png convert base.png fig_png_z_Tmd.png -composite fig_png_zw_Tmd.png convert -size 875x958 xc:"#FFFFFF" base.png convert base.png fig_png_z_HT1.png -composite fig_png_zw_HT1.png convert base.png fig_png_z_HT2.png -composite fig_png_zw_HT2.png convert base.png fig_png_z_PS1.png -composite fig_png_zw_PS1.png convert base.png fig_png_z_PS2.png -composite fig_png_zw_PS2.png |
gnuplotのコマンド記述ファイル作成実行時のパラメータは以下の通りです.
gccTUNNEL-gnuplot gpl_eps_*.txt,fig_eps_*.eps,ksp,D0,Tc,Tx,W,ts,tp |
入力データ記載例 | |
gccTUNNEL-gnuplot | gnuplotのコマンド記述ファイル名 |
gpl_eps_*.txt | gnuplotのコマンド記述ファイル名 |
fig_eps_*.eps | gnuplotの出力epsファイル名 |
ksp | -1:モデル作図,0:鉄管無し,1:鉄管有り |
D0 | トンネル内径 |
Tc | 覆工厚 |
Tx | 覆工厚インバート部増分 |
W | インバート幅 |
ts | 吹付厚 |
tp | 設計掘削線から支払線までの厚さ |
BoundingBox 書き換え実行時のパラメータは以下の通りです.
gccBBOX fig_eps_*.eps fig_eps_z_*.eps BBx1 BBy1 BBx2 BBy2 |
入力データ記載例 | |
gccBBOX | eps ファイルのBoundingBox書き換え実行プログラム |
fig_eps_*.eps | gnuplotがはき出した元epsファイル名 |
fig_eps_z_*.eps | 指定範囲切り取り後のepsファイル名 |
BBx1 | eps切取範囲左下x座標 |
BBy1 | eps切取範囲左下y座標 |
BBx2 | eps切取範囲右上x座標 |
BBy2 | eps切取範囲右上y座標 |
プログラム BBox のCプログラムコード (gccBBOX.c) は,以下の通りです.epsファイルの6行目の数値を変更するのみの内容です.
|
ToolStrip1(Button1),OpenFileDialog1,SaveFiledialog1,StatusStrip1(ToolStripStatusLabel1),PictureBox1
VB code | C# code | gcc code | Remarks |
---|---|---|---|
vb_Form1.txt | cs_Form1.txt | gccTUNNEL-gnuplot.txt | プログラムリスト |
ファイル名 | 概要 |
---|---|
inp_TUNNEL.txt | 入力データファイル |
gpl_eps_Tmd.txt | gnuplotコマンド記述ファイル(モデル) |
gpl_eps_HT1.txt | gnuplotコマンド記述ファイル(圧力水路1) |
gpl_eps_HT2.txt | gnuplotコマンド記述ファイル(圧力水路2) |
gpl_eps_PS1.txt | gnuplotコマンド記述ファイル(水圧鉄管1) |
gpl_eps_PS2.txt | gnuplotコマンド記述ファイル(水圧鉄管2) |
fig_png_z_Tmd.png | 出力透過png画像ファイル(モデル) |
fig_png_z_HT1.png | 出力透過png画像ファイル(圧力水路1) |
fig_png_z_HT2.png | 出力透過png画像ファイル(圧力水路2) |
fig_png_z_PS1.png | 出力透過png画像ファイル(水圧鉄管1) |
fig_png_z_PS2.png | 出力透過png画像ファイル(水圧鉄管2) |
fig_png_zw_Tmd.png | 出力白背景png画像ファイル(モデル) |
fig_png_zw_HT1.png | 出力白背景png画像ファイル(圧力水路1) |
fig_png_zw_HT2.png | 出力白背景png画像ファイル(圧力水路2) |
fig_png_zw_PS1.png | 出力白背景png画像ファイル(水圧鉄管1) |
fig_png_zw_PS2.png | 出力白背景png画像ファイル(水圧鉄管2) |
pdf-eps-TUNNEL.pdf | pdfファイル |
出力ターミナルを postscript eps として,普通軸と媒介変数表示を multiplot で重ね合わせた図です. 設計図とまでは行きませんが,報告書の説明図としては使えると思います. このような図は Wo*d や Exc*l という訳には行かないでしょう.
サブルーチン一覧 | ||
Sub・関数名 | 使用 | 機能 |
main_part (C : main) | VB・C#・C | 制御部 |
GPL | VB・C# | gnuplot 起動+ eps ファイル作成 |
BBOX | VB・C# | gnuplot が作成した eps ファイルの BoundingBox 修正 |
IMCVT | VB・C# | ImageMagick:convert で eps を 透過 png 画像に変換 |
IMCMP | VB・C# | ImageMagick:convert で白背景と透過 png 画像を合成 |
VIEWPNG | VB・C# | png 画像の画面表示 |
WGPL | VB・C#・C | gnuplot コマンド記述ファイル書き出し |
3 gpl_eps_T2Cmd.txt,fig_eps_T2Cmd.eps, -1, 6000, 5000, 5000, 400, 300, 300,150,70,340,240 gpl_eps_NATM1.txt,fig_eps_NATM1.eps, 0, 7600, 5700, 7200, 300, 200, 100,150,70,340,270 gpl_eps_NATM2.txt,fig_eps_NATM2.eps, 0, 5000, 5200, 4350, 300, 200, 100,150,70,340,270 |
1行目は,作図するケース数,2行目以降はそれぞれ以下のデータです.
gpl_eps_*.txt,fig_eps_*.eps,ksp,B,H,W,Ti,ts,tp,BBx1,BBy1,BBx2,BBy2 |
入力データ記載例 | |
gpl_eps_*.txt | gnuplotのコマンド記述ファイル名 |
fig_eps_*.eps | gnuplotの出力epsファイル名 |
ksp | -1:モデル作図,0:NATMトンネル |
B | 内空幅 |
H | 内空高 |
W | インバート内空幅 |
Ti | インバート厚 |
ts | 吹付厚 |
tp | 設計掘削線から支払線までの厚さ |
BBx1 | eps切取範囲左下x座標 |
BBy1 | eps切取範囲左下y座標 |
BBx2 | eps切取範囲右上x座標 |
BBy2 | eps切取範囲右上y座標 |
C では,下に示すバッチファイルで gnuplot と ImageMagick を実行しています. ImageMagic の コマンド identify は作成した png 画像の情報を表示させています.
gcc -o gccT2CNATM-gnuplot.exe gccT2CNATM-gnuplot.c gcc -o gccBBOX.exe gccBBOX.c rem gccT2CNATM-gnuplot gpl_eps_T2Cmd.txt fig_eps_T2Cmd.eps -1 6000 5000 5000 400 300 300 gccT2CNATM-gnuplot gpl_eps_NATM1.txt fig_eps_NATM1.eps 0 7600 5700 7200 300 200 100 gccT2CNATM-gnuplot gpl_eps_NATM2.txt fig_eps_NATM2.eps 0 5000 5200 4350 300 200 100 rem gnuplot "gpl_eps_T2Cmd.txt" gnuplot "gpl_eps_NATM1.txt" gnuplot "gpl_eps_NATM2.txt" rem gccBBOX fig_eps_T2Cmd.eps fig_eps_z_T2Cmd.eps 150 70 340 240 gccBBOX fig_eps_NATM1.eps fig_eps_z_NATM1.eps 150 70 340 270 gccBBOX fig_eps_NATM2.eps fig_eps_z_NATM2.eps 150 70 340 270 rem convert -density 300 fig_eps_z_T2Cmd.eps fig_png_z_T2Cmd.png convert -density 300 fig_eps_z_NATM1.eps fig_png_z_NATM1.png convert -density 300 fig_eps_z_NATM2.eps fig_png_z_NATM2.png rem identify fig_png_z_T2Cmd.png identify fig_png_z_NATM1.png identify fig_png_z_NATM2.png rem convert -size 792x708 xc:"#FFFFFF" base.png convert base.png fig_png_z_T2Cmd.png -composite fig_png_zw_T2Cmd.png convert -size 792x833 xc:"#FFFFFF" base.png convert base.png fig_png_z_NATM1.png -composite fig_png_zw_NATM1.png convert base.png fig_png_z_NATM2.png -composite fig_png_zw_NATM2.png |
gnuplotのコマンド記述ファイル作成実行時のパラメータは以下の通りです.
gccTUNNEL-gnuplot gpl_eps_*.txt,fig_eps_*.eps,ksp,B,H,W,Ti,ts,tp |
入力データ記載例 | |
gccTUNNEL-gnuplot | gnuplotのコマンド記述ファイル名 |
gpl_eps_*.txt | gnuplotのコマンド記述ファイル名 |
fig_eps_*.eps | gnuplotの出力epsファイル名 |
ksp | -1:モデル作図,0:NATMトンネル |
B | 内空幅 |
H | 内空高 |
W | インバート内空幅 |
Ti | インバート厚 |
ts | 吹付厚 |
tp | 設計掘削線から支払線までの厚さ |
BoundingBox 書き換え実行時のパラメータは圧力水路の断面設定プログラムと同じです.
ToolStrip1(Button1),OpenFileDialog1,SaveFiledialog1,StatusStrip1(ToolStripStatusLabel1),PictureBox1
VB code | C# code | gcc code | Remarks |
---|---|---|---|
vb_Form1.txt | cs_Form1.txt | gccT2CNATM-gnuplot.txt | プログラムリスト |
ファイル名 | 概要 |
---|---|
inp_NATM.txt | 入力データファイル |
gpl_eps_T2Cmd.txt | gnuplotコマンド記述ファイル(モデル) |
gpl_eps_NATM1.txt | gnuplotコマンド記述ファイル(事例1) |
gpl_eps_NATM2.txt | gnuplotコマンド記述ファイル(事例2) |
fig_png_z_T2Cmd.png | 出力透過png画像ファイル(モデル) |
fig_png_z_NATM1.png | 出力透過png画像ファイル(事例1) |
fig_png_z_NATM2.png | 出力透過png画像ファイル(事例2) |
fig_png_zw_T2Cmd.png | 出力白背景png画像ファイル(モデル) |
fig_png_zw_NATM1.png | 出力白背景png画像ファイル(事例1) |
fig_png_zw_NATM2.png | 出力白背景png画像ファイル(事例2) |
pdf-eps-NATM.pdf | pdfファイル |
gcc -o gccBBOX.exe gccBBOX.c gcc -o gccPSHD-gnuplot.exe gccPSHD-gnuplot.c rem gccPSHD-gnuplot inp_PSHD-gnuplot.csv gpl_eps_PSHD.txt gnuplot "gpl_eps_PSHD.txt" gccBBOX fig_eps_PSHD.eps fig_eps_z_PSHD.eps 50 50 410 302 convert -density 300 fig_eps_z_PSHD.eps fig_png_z_PSHD.png identify fig_png_z_PSHD.png convert -size 1500x1050 xc:"#FFFFFF" base.png convert base.png fig_png_z_PSHD.png -composite fig_png_zw_PSHD.png |
01 | fig_eps_PSHD.eps,#dummy 02 | Year of the first comercial operation,Design Head x Internal Diameter (m x m),#dummy 03 | 1955,2010,5 04 | 0,6000,500 05 | 47 06 | #PS_name,Type,Year,H*D,Class,Symbol,Steel,name,Type 07 | Sakuma , C,1956, 667,400MPa,r,SM41W , 佐久間 , 一般水力 08 | Tagokura , C,1958, 677,400MPa,b,SM41W , 田子倉 , 一般水力 ・・・・・ |
発電所名記載位置の記載例 | |
t | プロットの上 |
b | プロットの下 |
r | プロットの左(名前の右端をプロットに合わせる) |
l | プロットの右(名前の左端をプロットに合わせる) |
0 | 描画しない |
ToolStrip1(Button1),OpenFileDialog1,SaveFiledialog1,StatusStrip1(ToolStripStatusLabel1),PictureBox1
VB code | C# code | gcc code | Remarks |
---|---|---|---|
vb_Form1.txt | cs_Form1.txt | gccPSHD-gnuplot.txt | プログラムリスト |
ファイル名 | 概要 |
---|---|
inp_PSHD-gnuplot.txt | 入力データファイル |
gpl_eps_PSHD.txt | gnuplotコマンド記述ファイル |
fig_png_z_PSHD.png | 出力透過png画像ファイル |
fig_png_zw_PSHD.png | 出力白背景png画像ファイル |
ToolStrip1(Button1,Label1.ComboBox1),OpenFileDialog1,SaveFiledialog1,StatusStrip1(ToolStripStatusLabel1),PictureBox1
VB code | C# code | gcc code | Remarks |
---|---|---|---|
vb_Form1.txt | cs_Form1.txt | ---- | プログラムリスト |
ファイル名 | 概要 |
---|---|
inp_PSHD-gnuplot_EUC.txt | 入力データファイル(シフトJIS) |
inp_PSHD-gnuplot_UTF8N.txt | 入力データファイル(シフトJIS) |
fig_png_zw_PSHD_UTF8N.png | 出力白背景png画像ファイル |