%!PS-Adobe-3.0
576 0 translate % Landscape Mode !
90 rotate
28.571429 28.571429 scale % 単位をcmへ変更
3.0 3.0 translate % 原点の移動
% 頻繁につかう命令をマクロ定義する.
/M {moveto} def
/RM {rmoveto} def
/L {lineto} def
/RL {rlineto} def
/N {newpath} def
/C {closepath} def
/S {stroke} def
/F {fill} def
% 表示するデータは
% 0時から24時までの
% 降水量 (前1時間積算降水量:1h〜24h)
% 気温 (0hから23h)
% 露点温度 (0hから23h)
% グラフの幅は20cm,高さは10cmとする
/GRAPH_WIDTH 20 def
/GRAPH_HEIGHT 10 def
% グラフの範囲を設定する
% 時間 0 - 24h
/Start_HOUR 0 def
/End_HOUR 24 def
% 温度 -10 - 20deg.
/Start_TEMP -10 def
/End_TEMP 20 def
% 降水量 0 - 15mm
/Start_PREC 0 def
/End_PREC 15 def
% 1時間当たりのグラフの幅(cm)
/CMperHOUR GRAPH_WIDTH End_HOUR Start_HOUR sub div def
% 温度1度当たりのグラフの高さ(cm)
/CMperTEMP GRAPH_HEIGHT End_TEMP Start_TEMP sub div def
% 降水量1mm当たりのグラフの高さ(cm)
/CMperPREC GRAPH_HEIGHT End_PREC Start_PREC sub div def
% 時間からx軸の座標に変えるオペレータをつくる
/HOUR2CM { Start_HOUR sub CMperHOUR mul } def
% 温度からx軸の座標に変えるオペレータをつくる
/TEMP2CM { Start_TEMP sub CMperTEMP mul } def
% 降水量からx軸の座標に変えるオペレータをつくる
/PREC2CM { Start_PREC sub CMperPREC mul } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3時間毎にグリッド線をひく
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% xの値を指定してグラフの高さだけのグリッド線をひく
% マクロを作成する.
/GRID_X { HOUR2CM N 0 M 0 GRAPH_HEIGHT RL S } def
0.8 setgray % 色はグレーの0.8
0.03 setlinewidth % 線の幅は0.3mm
% 3,6,9,12,15,18,21h のグリッド線をひく
3 GRID_X
6 GRID_X
9 GRID_X
12 GRID_X
15 GRID_X
18 GRID_X
21 GRID_X
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 10deg毎にグリッド線をひく
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% xの値を指定してグラフの高さだけのグリッド線をひく
% マクロを作成する.
/GRID_Y { TEMP2CM N 0 exch M GRAPH_WIDTH 0 RL S } def
0.8 setgray % 色はグレーの0.8
0.03 setlinewidth % 線の幅は0.3mm
% -5,0,5,10,15 deg. のグリッド線をひく
-5 GRID_Y
0 GRID_Y
5 GRID_Y
10 GRID_Y
15 GRID_Y
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 念のためグラフ領域をクリップする
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N
0 0 M
GRAPH_WIDTH 0 L
GRAPH_WIDTH GRAPH_HEIGHT L
0 GRAPH_HEIGHT L
C clip
%%%%%%%%%%%%%%
% 降水量を描く
%%%%%%%%%%%%%%
% 降水量は柱でしめす.時間と,その前1時間雨量から
% 柱を一本描くマクロを作る
/PREC_BAR {
PREC2CM exch HOUR2CM exch % 値をcmに変える
dup 3 1 roll % 降水量のを複製し残す
% 柱のパスを作る
N
M % すでにスタックの中にある値で移動(柱の右上)
0 CMperHOUR sub 0 RL % (柱の左上)
0 exch sub 0 exch RL % 残した降水量の値で柱の左下へ
CMperHOUR 0 RL % (柱の右下)
C
gsave % 作ったパスを保存
0.7 0.9 0.7 setrgbcolor
F % 柱を塗りつぶす
grestore % 保存したパスを復元
0 setgray
0.03 setlinewidth
S % 柱の輪郭を描く
} def
%前1時間降水量の柱を描く
% hour rain
1 0 PREC_BAR
2 0 PREC_BAR
3 1 PREC_BAR
4 3 PREC_BAR
5 0 PREC_BAR
6 0 PREC_BAR
7 2 PREC_BAR
8 0 PREC_BAR
9 0 PREC_BAR
10 0 PREC_BAR
11 3 PREC_BAR
12 9 PREC_BAR
13 6 PREC_BAR
14 2 PREC_BAR
15 0 PREC_BAR
16 1 PREC_BAR
17 0 PREC_BAR
18 0 PREC_BAR
19 0 PREC_BAR
20 0 PREC_BAR
21 0 PREC_BAR
22 0 PREC_BAR
23 0 PREC_BAR
24 0 PREC_BAR
%%%%%%%%%%%%
% 気温を描く
%%%%%%%%%%%%
% 前の点から現在の点まで線でつなぐマクロを作成する.
/DRAWLINE {
TEMP2CM exch HOUR2CM exch 2 copy
L S N M
} def
/DRAWLINE_Start {
TEMP2CM exch HOUR2CM exch N M
} def
% 線の色と太さを設定する
0.9 0.5 0.5 setrgbcolor
0.1 setlinewidth
% 気温を線で結ぶ
% hour temp
1 8.0 DRAWLINE_Start
2 7.7 DRAWLINE
3 6.6 DRAWLINE
4 5.1 DRAWLINE
5 4.5 DRAWLINE
6 4.3 DRAWLINE
7 5.7 DRAWLINE
8 7.8 DRAWLINE
9 9.6 DRAWLINE
10 10.7 DRAWLINE
11 11.3 DRAWLINE
12 13.9 DRAWLINE
13 13.6 DRAWLINE
14 10.2 DRAWLINE
15 6.0 DRAWLINE
16 2.7 DRAWLINE
17 1.2 DRAWLINE
18 0.4 DRAWLINE
19 -1.7 DRAWLINE
20 -0.0 DRAWLINE
21 -0.3 DRAWLINE
22 -1.7 DRAWLINE
23 -1.6 DRAWLINE
% 指定した位置を○でプロットするためのマクロを作成
% 円の半径は1時間当たりの長さの5分の1にする
/PLOT_CIRCLE{
TEMP2CM exch HOUR2CM exch
N CMperHOUR 5 div 0 360 arc C
gsave
1 1 1 setrgbcolor
F
grestore
S
} def
% 線の色と太さを設定する
0.9 0.5 0.5 setrgbcolor
0.05 setlinewidth
% 気温をプロットする
% hour temp
1 8.0 PLOT_CIRCLE
2 7.7 PLOT_CIRCLE
3 6.6 PLOT_CIRCLE
4 5.1 PLOT_CIRCLE
5 4.5 PLOT_CIRCLE
6 4.3 PLOT_CIRCLE
7 5.7 PLOT_CIRCLE
8 7.8 PLOT_CIRCLE
9 9.6 PLOT_CIRCLE
10 10.7 PLOT_CIRCLE
11 11.3 PLOT_CIRCLE
12 13.9 PLOT_CIRCLE
13 13.6 PLOT_CIRCLE
14 10.2 PLOT_CIRCLE
15 6.0 PLOT_CIRCLE
16 2.7 PLOT_CIRCLE
17 1.2 PLOT_CIRCLE
18 0.4 PLOT_CIRCLE
19 -1.7 PLOT_CIRCLE
20 -0.0 PLOT_CIRCLE
21 -0.3 PLOT_CIRCLE
22 -1.7 PLOT_CIRCLE
23 -1.6 PLOT_CIRCLE
%%%%%%%%%%%%%%%%
% 露点温度を描く
%%%%%%%%%%%%%%%%
% 線の色と太さを設定する
0.5 0.5 0.9 setrgbcolor
0.1 setlinewidth
% 露点温度を線で結ぶ
% hour dewpoint
1 1.3 DRAWLINE_Start
2 1.5 DRAWLINE
3 1.7 DRAWLINE
4 2.4 DRAWLINE
5 2.4 DRAWLINE
6 2.3 DRAWLINE
7 3.9 DRAWLINE
8 4.5 DRAWLINE
9 6.7 DRAWLINE
10 6.2 DRAWLINE
11 6.1 DRAWLINE
12 6.7 DRAWLINE
13 5.5 DRAWLINE
14 6.3 DRAWLINE
15 1.2 DRAWLINE
16 0.9 DRAWLINE
17 -1.4 DRAWLINE
18 -2.6 DRAWLINE
19 -3.5 DRAWLINE
20 -2.1 DRAWLINE
21 -2.4 DRAWLINE
22 -2.8 DRAWLINE
23 -2.5 DRAWLINE
% 線の色と太さを設定する
0.5 0.5 0.9 setrgbcolor
0.05 setlinewidth
% 露点温度を線で結ぶ
% hour dewpoint
1 1.3 PLOT_CIRCLE
2 1.5 PLOT_CIRCLE
3 1.7 PLOT_CIRCLE
4 2.4 PLOT_CIRCLE
5 2.4 PLOT_CIRCLE
6 2.3 PLOT_CIRCLE
7 3.9 PLOT_CIRCLE
8 4.5 PLOT_CIRCLE
9 6.7 PLOT_CIRCLE
10 6.2 PLOT_CIRCLE
11 6.1 PLOT_CIRCLE
12 6.7 PLOT_CIRCLE
13 5.5 PLOT_CIRCLE
14 6.3 PLOT_CIRCLE
15 1.2 PLOT_CIRCLE
16 0.9 PLOT_CIRCLE
17 -1.4 PLOT_CIRCLE
18 -2.6 PLOT_CIRCLE
19 -3.5 PLOT_CIRCLE
20 -2.1 PLOT_CIRCLE
21 -2.4 PLOT_CIRCLE
22 -2.8 PLOT_CIRCLE
23 -2.5 PLOT_CIRCLE
%%%%%%%%%%%%%%%%%%%%
% クリップを解除する
%%%%%%%%%%%%%%%%%%%%
initclip
%%%%%%%%%%%%
% 外枠を描く
%%%%%%%%%%%%
0.05 setlinewidth
0 setgray
N
0 0 M
GRAPH_WIDTH 0 L
GRAPH_WIDTH GRAPH_HEIGHT L
0 GRAPH_HEIGHT L
C S
%%%%%%%%%%%%%%%%%
% x軸の文字を描く
%%%%%%%%%%%%%%%%%
% 文字の位置と文字を指定して中揃えで描く
% マクロを作る
/X_LABEL {
exch HOUR2CM 0 M
0 -0.6 RM
dup stringwidth pop 2 div 0 exch sub 0 RM
show
} def
% フォントを設定する
/Helvetica findfont 0.5 scalefont setfont
0 setgray
% ラベルを描く
0 (00) X_LABEL
3 (03) X_LABEL
6 (06) X_LABEL
9 (09) X_LABEL
12 (12) X_LABEL
15 (15) X_LABEL
18 (18) X_LABEL
21 (21) X_LABEL
24 (24) X_LABEL
% 軸タイトルようのフォントを設定する
/Helvetica findfont 0.8 scalefont setfont
0 setgray
% 軸のタイトルを描く
(TIME (JST))
0 -1.8 M
GRAPH_WIDTH 2 div 0 RM % 枠の中心に
dup stringwidth pop 2 div 0 exch sub 0 RM % 中揃え
show
%%%%%%%%%%%%%%%%%
% y軸の文字を描く
%%%%%%%%%%%%%%%%%
% 文字の位置と文字を指定して文字を描く
% マクロを作る
/Y_LABEL_T {
exch TEMP2CM 0 exch M
-0.2 -0.15 RM
dup stringwidth pop 0 exch sub 0 RM % 右揃え
show
} def
/Y_LABEL_P {
exch PREC2CM GRAPH_WIDTH exch M
0.2 -0.15 RM
show
} def
% フォントを設定する
/Helvetica findfont 0.5 scalefont setfont
0 setgray
% ラベルを描く
-10 (-10) Y_LABEL_T
-5 (-5) Y_LABEL_T
0 (0) Y_LABEL_T
5 (5) Y_LABEL_T
10 (10) Y_LABEL_T
15 (15) Y_LABEL_T
20 (20) Y_LABEL_T
0 (0) Y_LABEL_P
5 (5) Y_LABEL_P
10 (10) Y_LABEL_P
15 (15) Y_LABEL_P
% 軸タイトルようのフォントを設定する
/Helvetica findfont 0.8 scalefont setfont
0 setgray
% 軸のタイトルを描く
(TEMP. DEWPOIN (deg))
gsave
90 rotate % 軸を回転
0 1.2 M
GRAPH_HEIGHT 2 div 0 RM % 枠の中心に
dup stringwidth pop 2 div 0 exch sub 0 RM % 中揃え
show
grestore
(PRECIPITATION (mm))
gsave
GRAPH_WIDTH GRAPH_HEIGHT translate % 右上へ原点を移動して
-90 rotate % 軸を回転
0 1.0 M
GRAPH_HEIGHT 2 div 0 RM
dup stringwidth pop 2 div 0 exch sub 0 RM
show
grestore
showpage
|