Top Banner
木村拓馬 FORTRAN プログラミング 第2回 グラフ作成木村拓馬 2014 10 7 23:53 FORTRAN プログラミング,–第2回 グラフ作成– ( 2014 10 7 23:53 ) 1/16
16

FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

Sep 15, 2018

Download

Documents

voquynh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

FORTRANプログラミング–第2回 グラフ作成–

木村拓馬

2014年10月 7日 23:53

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 1/16

Page 2: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

.本日は..

......

gnuplotを例に,グラフを描くためのデータ出力を練習

2Dのグラフの描き方

3Dのグラフの描き方

グラフをファイルに出力

データ出力の演習

グラフをワープロソフトに貼り付けてみる

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 2/16

Page 3: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

gnuplot

無料の汎用作図プログラム

2次元と 3次元のグラフを作成するコンパクトな会話型作図プログラム

1986年に最初のバージョンが開発

現在では、Linux,UNIX,Windows,Mac OSなど様々な OSに対応

各種の機能を有することから、広く利用

使い方を解説したホームページが多数存在する。例えば

http://www.gnuplot.info/

(田辺誠,平山弘:実践 Fortran95プログラミング,共立出版 (1994)より引用)

GNU(グニュー)とは関係ないらしい

gは発音しないらしい(ニュープロット)

(wiki)

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 3/16

Page 4: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

gnuplot用数値データのルール数値データは,空白 (スペース)で区切る.

#でコメント(行の先頭に#があると,その行は無視される).

演習 1.1で作成したプログラムの出力”pr1.1.dat ”の最初の行

.

......  #angle sin cos

の#は数値以外をコメントアウトするためにある.

数値データの例(pr1.1.dat)� �#angle sin cos

0 0.000000 1.000000

10 0.173648 0.984808

20 0.342020 0.939693

30 0.500000 0.866025

40 0.642788 0.766044

50 0.766044 0.642788

60 0.866025 0.500000

70 0.939693 0.342020

80 0.984808 0.173648

� �FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 4/16

Page 5: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき.起動........[user@host]$gnuplot.終了........gnuplot>␣exit.sin(x)の線グラフ........gnuplot>␣plot␣sin(x)␣with␣lines

 

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 5/16

Page 6: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき.起動........[user@host]$gnuplot.終了........gnuplot>␣exit.sin(x)の線グラフ........gnuplot>␣plot␣sin(x)␣with␣lines.pr1.1.datからの sin........gnuplot>␣plot␣"pr1.1.dat"␣with␣lines.with linesは省略できます........gnuplot>␣plot␣"pr1.1.dat"␣w␣l

パラメータ (一部)と省略形

with dots w d 点を打つ

with points w p 小図形を描く

with linespoints w lp 小図形を描き線で結ぶ

with impulse w i x軸と鉛直線で結ぶwith steps w s 鉛直線と水平線で結ぶ

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 6/16

Page 7: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき.sinと cosを両方(“,”で区切る)........plot␣"pr1.1.dat"␣using␣1:2␣w␣l,␣"pr1.1.dat"␣using␣1:3␣w␣l

.sinと cosを両方(“ replot”で追加)(plot· · · の後 ↑で入力の履歴.少し書き換えて replotするのに便利かも)..

......

plot␣"pr1.1.dat"␣using␣1:2␣with␣lines

replot␣"pr1.1.dat"␣using␣1:3␣with␣lines

.凡例..

......

plot␣"pr1.1.dat"␣using␣1:2␣title␣"sin(x)"␣with␣lines

replot␣"pr1.1.dat"␣using␣1:3␣title␣"cos(x)"␣with␣lines

.軸..

......

set␣xlabel␣"x"

set␣ylabel␣"f(x)"

plot␣"pr1.1.dat"␣using␣1:2␣title␣"sin(x)"␣with␣lines

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 7/16

Page 8: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき.xと f(x)の範囲..

......

set␣xrange␣[0:360]

set␣yrange␣[-1.1:1.1]

plot␣"pr1.1.dat"␣using␣1:2␣title␣"sin(x)"␣with␣lines

replot␣"pr1.1.dat"␣using␣1:3␣title␣"cos(x)"␣with␣lines.xと f(x)の範囲 (replotには範囲指定しない)..

......

plot␣[0:360][-1:1]␣"pr1.1.dat"␣using␣1:2␣title␣"sin(x)"␣w␣l

replot␣"pr1.1.dat"␣using␣1:3␣title␣"cos(x)"␣w␣l

 FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 8/16

Page 9: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき (3D)”授業のページ”から” pr2.1.dat ”をダウンロードして作業用ディレクトリに保存.”pr2.1.dat”は,分点を

xi = i/15 − 1, (i = 0, 1, · · · , 30),y j = j/15 − 1, ( j = 0, 1, · · · , 30),

として,f (xi, y j) = xi

2 − y j2,

の値を並べた 31 × 31行列..3Dのグラフ........splot␣"pr2.1.dat"␣matrix␣title␣"x*x-y*y"␣w␣l.軸..

......

set␣xtics("-1.0"␣0,␣"0.0"␣15,␣"1.0"␣30)

set␣ytics("-1.0"␣0,␣"0.0"␣15,␣"1.0"␣30)

splot␣"pr2.1.dat"␣matrix␣title␣"x*x-y*y"␣w␣lマウスでドラッグすると回転

上の xtics,yticsは,”pr2.1.dat”の 第 0列が x = −1.0,第 15列が x = 0.0,第 30列が x = 1.0に対応 第 0行が y = −1.0,第 15行が y = 0.0,第 30行が y = 1.0に対応を意味する.

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 9/16

Page 10: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき (3D)

”授業のページ”から” ex2.1.dat ”をダウンロードして作業用ディレクトリに保存.”ex2.1.dat”は,以下のように 3次元の点の座標を並べたもの.

数値データの例(ex2.1.dat)� �# X Y Z

0.000000 0.000000 0.0000000.000000 1.000000 1.0000001.000000 0.000000 2.0000000.000000 0.000000 0.000000

1.000000 0.000000 2.0000001.000000 1.000000 3.0000000.000000 1.000000 1.0000001.000000 0.000000 2.000000� �マウスでドラッグすると回転

.座標から 3Dのグラフ........splot␣"ex2.1.dat"␣w␣l

座標を並べると線で結ぶ.1つ目の点と 4つ目の点を合わせれば 3角形が描ける空白行を入れると,線を結ぶのをいったん止める.

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 10/16

Page 11: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき (3D)”授業のページ”から” ex2.2.dat ”をダウンロードして作業用ディレクトリに保存.”ex2.2.dat”は,以下のように 3次元の点の座標を並べたもの.

数値データの例(ex2.2.dat)� �# X Y Z

0.000000 0.000000 0.0000000.000000 1.000000 1.0000000.000000 2.000000 2.000000

1.000000 0.000000 1.0000001.000000 1.000000 2.0000001.000000 2.000000 3.000000

2.000000 0.000000 2.0000002.000000 1.000000 3.0000002.000000 2.000000 4.000000� �マウスでドラッグすると回転

.座標から 3Dのグラフ........splot␣"ex2.2.dat"␣w␣l

上のように座標を並べると 3次元の格子が描ける

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 11/16

Page 12: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき (3D)

”授業のページ”から” pr2.2.dat ”をダウンロードして作業用ディレクトリに保存.”pr2.2.dat”は,分点を

xi = i/5 − 1, (i = 0, 1, · · · , 10),

y j = j/5 − 1, ( j = 0, 1, · · · , 10),

として,z = x2 − y2,

の値の (x, y, z)座標を前ページの例のように並べたもの.

.3Dのグラフ........splot␣"pr2.2.dat"␣title␣"x*x-y*y"␣w␣l

マウスでドラッグすると回転

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 12/16

Page 13: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき (ファイルに出力).出力端末の変更(例えば jpegファイルに書き込む)........gnuplot>␣set␣terminal␣jpeg.出力するファイル名........gnuplot>␣set␣output␣"test.jpeg".plotすると”test.jpeg”に書き込まれる........gnuplot>␣plot␣"pr1.1.dat"␣using␣1:2␣title␣"sin(x)"␣with␣lines.画像ビューア (Eye Of GNOME)で確認........[user@host]$eog␣test.jpeg

ほかに eps, gif, png, pbmなどの形式........gnuplot>␣set␣terminal

で使用できる出力端末が確認できる.詳細は help→terminal.ファイル出力をやめたいときは,

.

......gnuplot>␣set␣terminal␣x11

失敗してやりなおしたいときも一度 set terminalで出力端末を切り替える

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 13/16

Page 14: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

参考文献

田辺誠,平山弘:実践 Fortran95プログラミング,共立出版 (1994)

戸川隼人: 「ザ・Fortran90/95」,サイエンス社 (1999)

gnuplot homepage (2014年 10月 5日閲覧)http://www.gnuplot.info/

gnuplot -ウィキペディア (2014年 10月 5日閲覧)http://ja.wikipedia.org/wiki/Gnuplot

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 14/16

Page 15: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

Appndix

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 15/16

Page 16: FORTRAN プログラミング 第2回 グラフ作成ax-b.com/FPR2_2014/slide/141005.02.plot.pdf · 木村拓馬 fortran プログラミング – 第2回 グラフ作成– 木村拓馬

木村拓馬

お絵かき (ファイルに出力)

場合によっては楽かも

スクリーンショットを取得してワープロソフト等に貼り付け(以下の図もコレで撮れます)

 

 

 

 

   ⇒ 

 キーボードの「PrintScreen」を押すと画面全体「Alt」+「PrintScreen」でアクティブウィンドウのスクリーンショットを撮る

FORTRAN プログラミング,–第2回 グラフ作成– ( 2014年10月7日 23:53 ) 16/16