|
はじめに |
インストール |
■ PGPLOTのインストール
WIPを使うためには、まずPGPLOTのインストールが必要。
PGPLOT - Linux Wiki -
を参考にすると良い。
最後の方に、WIPのインストールについても書いてある。
■ Vine 5.0 用メモ
- pgplot をコンパイルする時に、Xlib.h がなくて失敗する。
#apt-get install XOrg-devel
で、インストールする。(Vine 5.0は少し違う名前だったけど忘れてしまった。それっぽいのをインストール。)
- pgplot を使うプログラムをコンパイルする時、f2c がなくてコンパイルできない。
そういう場合は、-lf2c を -lg2c にするとコンパイルできる。(gfortranを入れる)
libg2cを探したらこんなところにあったので、リンクは以下のように。
-I/usr/local/pgplot -L/usr/local/pgplot -lcpgplot -lpgplot -L/usr/X11R6/lib -lX11 -L/usr/lib/gcc-lib/x86_64-vine-linux/3.3.6 -lg2c -lm でコンパイルできる。
■ WIPのインストール
(2009/11/19 更新)
WIPのホームページからダウンロード。
The WIP Home Page
tar czvf wip2p3.tar.gz
で解凍。 wip というディレクトリができる。
cd wip/
makewip というスクリプトがある。中を見ると、オプションについて説明が書いてある。
上記のページを参考に、f77ではなく、g77を使うようにする。(gfortranが入ってなければインストール。)
ln -s /usr/bin/g77 /usr/local/bin/f77
これだけだとコンパイルできないので(Vine 3.2, 5.0)、
makewip の中の lf2c という部分を lg2c に書き換える。
./makewip -pgplot /usr/local/pgplot -lib /usr/local/lib -bin /usr/local/bin -xlib /usr/X11R6/lib
でコンパイルできた。
■ Vine 3.2 用メモ
- pgplot をコンパイルする時に、Xlib.h がなくて失敗する。
#apt-get install XOrg-devel
で、インストールする。(Vine 5.0は少し違う名前だったけど忘れてしまった。それっぽいのをインストール。)
- pgplot を使うプログラムをコンパイルする時、f2c がなくてコンパイルできない。
そういう場合は、-lf2c を -lg2c にするとコンパイルできる。
-I/usr/local/pgplot -L/usr/local/pgplot -lcpgplot -lpgplot -L/usr/X11R6/lib -lX11 -lg2c -lm でコンパイルできるはず。
- WIP をコンパイルする時(makewip実行時)にも同様のことが起こる。
makewip というファイルの中の lf2c を lg2c に書き換えるとコンパイルできるようになる。
あとは、PGPLOT - Linux Wiki -に書いてある通りでインストールできる。
|
|
.wipinitの設定
|
ホームディレクトリに .wipinit というファイルを作る。
その中にset maxarray 100000 とか書いておく。
この数字の数だけしかデータを読み込めない。
|
|
WIPの起動/終了 |
■ WIPの起動
コマンドラインで wip と入力。
Setting up default device [/XWINDOW]
Welcome to WIP Version: 2.3 22jan98
WIP>
と表示され、PGPLOTが立ち上がる。
■ WIPの終了
WIP> end と入力。
|
|
ファイルからコマンドを読み込む |
コマンドを全て書いたファイルを用意し、読み込ませることができる。
このファイルを編集し、図を修正していくと便利。
サンプル
paper 4 1
viewport 0.2 0.9 0.2 0.9
expand 1.5
font 2
limits 0 10 0 10
box bcnst bcnst
xlabel x
ylabel y
move 1 8
label This is a sample.
move 0 0
draw 10 10
を、 sample というファイルに書いておく。
起動時に、
$ wip sample
とすると、ファイルが読み込まれる。
できる図はこんなかんじ。
■
ファイルを編集して再度表示したい場合
ファイルを編集してから、
WIP> input sample
と入力すると、変更が反映される。
|
|
図をファイルに出力 |
■
WIP起動時に出力先を指定
先程のサンプルをPostScriptファイルに出力する場合、コマンドラインで、
$ wip sample -d sample.ps/vps
と入力すると、 WIP が起動し、
Setting up default device [sample.ps/vps]
Reading commands from [sample]....
Welcome to WIP Version: 2.3 22jan98
WIP>
と表示されるので、 end で WIP を終了する。
注意事項
- PostScriptにした場合、背景が白、線が黒になる。
- vps ではなく ps にすると tex に貼った時、図が90度回転する。
- カラーで出力したい時は cvps にする。
- PGPLOT が出力する PostScript は、BoundingBox がファイルの最後にある。
■
WIPのコマンドラインで出力先を指定
WIP> device sample.ps/vps
WIP> end
と入力。
■
出力できるファイルの種類
PostScript以外にも出力できる。(ただし、PGPLOTの設定による。)
ファイル名 / デバイス で指定。
主なもの
filename/vps #PostScriptモノクロ
filename/cvps #PostScriptカラー
filename/gif #GIF
注:PGPLOTのバグ(?)で、 PNG には出力できない。
|
|
サンプル |
ファイルを読み込み図を作る |
サンプルデータ test.dat
サンプル sample1.wip
paper 7 0.77 # 図のサイズを指定
viewport 0.2 0.9 0.2 0.9 # ビューポートの設定
limits 0 0.8 0 6 # x,yの値の範囲
font 2 # フォントの変更
expand 1.8 # フォントサイズ変更
box bcnst bcnst # 枠を描く
font 3
expand 2.0
xlabel T \fr(Myr)
ylabel R \fr(pc)
data test.dat # 読み込むデータファイル
xcolumn 1 # xの値
ycolumn 2 # yの値
lstyle 1 # 線種の変更
connect # データを線でつなぐ
xcolumn 1
ycolumn 3
lstyle 2
color 5 # 色の変更
connect
font 2
expand 1.6
lstyle 1
color 1
move 0.42 5.5 # 移動
draw 0.5 5.5 # 線を引く
move 0.52 5.4
label Column 2
lstyle 2
color 5
move 0.42 5.0
draw 0.5 5.0
move 0.52 4.9
label Column 3
これらを保存し、コマンドラインで、
$ wip sample1.wip
と入力すると、このような図ができる。
以後、この図ができるまでを解説する。
|
|
データファイルから図を作る |
図の大きさを指定 |
paper 図の大きさ(inch) 縦横比(縦/横)
(例) paper 7 0.77
図の大きさを決める。
図の形は縦横比で指定。"1"にすると正方形。
|
|
ビューポートの指定 |
viewport 左下 右下 左上 右上
(例) viewport 0.2 0.9 0.2 0.9
paper で決めた大きさの紙の中で、枠を描く位置を指定する。
0〜1 の間で指定。
|
|
x, yの値の範囲 |
limit xの最小値 xの最大値 yの最小値 yの最大値
(例) limits 0.0 0.8 0.0 6.0
x, yの値の範囲を指定。
枠の最大値、最小値がこの値になる。
■対数の場合
軸を対数で取る場合、最大値・最小値は"肩"の値で与える。
例えば、
1000 → 3
0.01 → -2
|
|
枠を描く |
box x軸の引数 y軸の引数
(例1) box bcnst bcnst #普通の軸
(例2) box bcnstl bcnstl #対数の場合
(例3) box bcnst bcnszdoy #角度・時間の場合
ビューポートの周りに枠を描く。
■よく使う引数の説明
b : 枠の底辺(x)または左辺(y)を描く。
c : 枠の上辺(x)または右辺(y)を描く。
n : 軸に数字をふる。
s : 副刻みを描く。
t : 主刻みを描く。
l : 軸を対数にする。
v : y軸の目盛を縦向きに書く(デフォルトは横向き)。
z : 目盛を(日)時分秒で取る(目盛が角度の時に)。
d : 数字に°とか″とかをつける(目盛が角度の時に)。
o : 数字の前に0が入らないようにする(03°→3°)。dを指定した時のみ働く。
y : 目盛に日が入らないようにする(zを指定したときのみ)。
軸を角度にしたい場合の注意:単位を秒にして数字を与えないといけない。例えば、1°のところにプロット点を打ちたければ、3600という数字を与える必要がある。
その他の引数についてはこちら。
PGPLOT サブルーチン解説 PGBOX
|
|
目盛の幅を指定 |
ticksize x軸の目盛の幅 x軸の小目盛の数 y軸の目盛の幅 y軸の小目盛の数
(例) ticksize 0 0 36000 5
x軸は自動、y軸の大きい目盛の間隔は36000(角度の時はこれで10°になる)
目盛の間隔を指定。軸を角度にするとよくお世話になる。
1つめの数字は、大きい目盛(数字が書かれる)の幅、2つめの数字は大きい目盛の間の小目盛の数。(いくつに分けるかなので、書かれる目盛線の数は指定した数字-1。)
0を指定すると自動的に目盛が決められる。
注1:必ずboxの前に書くこと。
注2:一度指定すると後の図全てに適用されるので、続けて別の図を書くときは指定し直すこと。
|
|
軸のラベルを書く |
xlabel x軸の名前
ylabel y軸の名前
(例) xlabel X
ラベルはビューポートの外に書かれる。
(ビューポートを大きくしすぎると、ラベルが紙面からはみ出す。)
ラベルの位置を自分で決めたい場合はmtextの方が良い。
mtext ラベルの場所 軸からの距離 書く位置 書き始めの位置 書きたい文字列
(例)mtext B 2.0 0.5 0.5 test → 下の軸から2.0離れたところの真ん中に test と書く
■ラベルの場所
B : 下の軸
L : 左の軸
T : 上の軸
R : 右の軸
■軸からの距離
単位は文字列の基本の大きさ(expandなどと同じ単位)。マイナスにすると軸の内側に書かれる。
■書く位置
0だと軸の左端、0.5だと真ん中、1だと右端(横軸の場合)。
■書き始めの位置
0.5だと中央揃え、0だと最初の文字が「書く位置」で指定した場所になる。
フォント等の指定についてはこちらを参照。
フォントの変更
フォントサイズの変更
ギリシャ文字
上付き、下付き文字
一部だけ斜体/太字
|
|
ファイルからデータを読む |
data 読み込むファイルの名前
xcolumn xの値とする列
ycolumn yの値とする列
読み込むファイルの形式は GNUPLOT と同じ。
(列を指定して列ごとに読む。)
xcolumn, ycolumn で、どの列を使うか指定できる。
GNUPLOT のように掛けたり割ったりすることができないので、先に awk などで処理をしておく必要がある。
(正確に言うとできるが非常に大変。)
■
軸を対数にしている場合
例えば x軸を対数で取りたい場合、
logarithm x と書いておく。
|
|
データを線でつなぐ |
|
データ点を打つ |
|
線種を変更 |
lstyle 整数
で、線の種類を変えられる。
変更は、これ以降の全ての線に適用される。
デフォルトは実線(1)。
■
番号と線種
1 : 実線
2 : 破線
3 : dot - dash - dot - dash
4 : 点線
5 : dash - dot - dot - dot
|
|
線の太さを変更 |
lwidth 整数
線の太さを変更。
"1" がデフォルトの太さ(約0.005inch)で、その何倍の太さにするか。
注1:線を太くすると、破線や点線の間隔も大きくなる。
注2:XWINDOW で見てもあまり変わっていないことがある。
(PostScriptにするとちゃんと変わっている。)
|
|
色を変更 |
color 整数
で、色を変更できる。
線にも文字にも使える。
一度変更すると、次ぎに変更するまで、線も文字もその色になる。
■
主な色と番号
0 : 黒 (背景色) PostScriptでは白
1 : 白 (線の初期値) PostScriptでは黒
2 : 赤
3 : 緑
4 : 青
他の色と番号はこちら。既定値の色テーブル
|
|
シンボルを変更 |
symbol 番号 プロット点のシンボルを変更。
番号とシンボルの対応表はこちら。
|
|
対数の場合のまとめ |
対数でプロットしたい場合にすべきこと。
- limits で、最大値・最小値に肩の数字を与える。
- box で、引数に "l" を入れる。
- logarithm を入れる。
- 枠内に文字等を書く時の位置も肩の数字で指定。参考
|
|
凡例を作る |
WIPには自動で凡例を作る機能がないので、自分で線を引いて、文字を書き込
んで、凡例を作る。 |
書きたい場所へ移動 |
move x座標 y座標
線を引く、文字を書くために、まず、その始点に移動する。
座標の数字は、軸と共通(ワールド座標と言う)。
注:軸を logscale にしている場合は、肩の数字で座標を指定する。
|
|
直線をひく |
draw x座標 y座標
move で指定した座標から、draw で指定した座標まで直線を引く。
線種は lstyle で選べる。
|
|
点を打つ |
|
文字を書く |
まず、move で、書きたい場所に移動。
(move で指定した座標は、文字の左下になる。)
label 書きたい文字
で、文字が書ける。
フォント等の変更は以下参照。
|
|
フォントの変更 |
font 整数
で、フォントを指定できる。
■
番号とフォント
1 : Normal font (デフォルト)
2 : Roman
3 : Italic
4 : Script (手書き風?)
|
|
フォントサイズの変更 |
expand 小数
で、文字の大きさを変更できる。
1.0 がデフォルトの大きさ。
その何倍にするかを指定する。
|
|
ギリシャ文字 |
\g
をアルファベットの前に付けるとギリシャ文字になる。
例:\ga → α
|
|
途中でフォントを変更 |
途中でフォントを変更できる。
\fr ローマンに変更
\fi イタリックに変更
|
|
上付き、下付き文字 |
\d
下付きにする or 上付きから元に戻す。(一段下げる)
\u
上付きにする or 下付きから元に戻す。(一段上げる)
|
|
特殊記号 |
|
マクロを定義する |
下の関数の場合の具体例を見た方がわかりやすいかも。
■
基本事項
変数
いくつかすでに定義されている変数がある。
使いそうなものはこちら。
x, y, err
それぞれ、xの値、yの値、errorの値が入っている関数。
x[1]
とかでアクセスできる。
注意:「0」ではなく「1」から始まる。
一時的に値を入れたい時に使える変数。
\0 〜 \20
代入
set 変数 代入する値
(例) set \0 1.5
\0 という変数に 1.5 を代入。
式の定義
(例) set \0 sin(\1) + 10
変数\0にsin(\1)+10の値を代入。
注意:「+」とか「-」とかの前に必ず「スペース」を入れないといけない。
使える関数については、下のリンク先(上)を参照。
参考
マクロについて全体的な説明
変数や使える関数について
もうちょっと具体的な例
|
|
関数を定義する |
関数の例
define func # 関数の名前を定義
set $1 $1 + 1 # カウンター(1から始めないとダメ)
set \9 0.01 * ($1 - 1) # \9 という変数に代入。($1はひとつめの引数)
set x[$1] \9 # x(x軸に使う値の配列)の$1に値を代入
set y[$1] 1000 * exp($2 * \9) # y(y軸に使う値の配列)の$1に値を代入
end # 定義の終了 ($2は2つめの引数)
注:$1, $2, ...は、引数の1つめ、2つめ...を表す。
呼び出す時の例
set \0 0 # \0 という変数に0を代入
loop 100 func \0 -0.1 # 100回 func を呼び出す(後ろは引数)
connect # 線でつなぐ
全部合わせるとこんな図が描ける。
define generate
set \9 0.01 * ($1 - 1)
set x[$1] \9
set y[$1] 1000 * exp($2 * \9)
set $1 $1 + 1
end
paper 5 1.2
viewport 0.2 0.9 0.2 0.9
limits 0 2.5 200 1000
lstyle 1
expand 1.8
font 2
box bcnst bcnst
expand 2.0
xlabel \fiT\fr(Myr)
ylabel \fim\fr(M\d\(2281)\u)
set \0 1
loop 250 generate \0 -9.7e-2
connect
lstyle 2
set \0 1
loop 250 generate \0 -5e-1
connect
font 2
move 1.6 900
label Low
move 1.6 500
label High
|
|