2次元グラフ(工事中)
以下の解説は私の
カスタマイズ用ファイルの使用を前提とします。
描画関数
・
曲線:plg
・
凡例付き曲線:plgl
・
関数プロット:fp
・
塗りつぶし等高線:plfc
・等高線:plc
・棒グラフ:plh
など(追加予定)
その他の関数
・ウィンドウの生成とサイズ変更など:win2
・画像の保存(ps,eps,png):hcpng
・画像の保存(描画領域をそのままpngで保存):outpng
など(追加予定)
plg:曲線
plg,y,x,color=,width=,type=,marks=,closed=;
- y: y座標(1次元ベクトル)
- x: x座標(1次元ベクトル)
- color=: 線の色(char型の数、またはベクトル[r,g,b]。ただしr,g,bはそれぞれ0-200までの整数に対応)
- width=: 線の太さ(自然数)
- type=:線の種類[1(実線)、2(破線)、3(点線)、4(一点鎖線)、5(二点鎖線)]
- marks=:線をアルファベット表示(整数)
win2,400,400; /* ウィンドウを表示(既に表示されている場合は不要) */
x=span(0,4,128); /* 0〜4まで等間隔に128点とりxに格納 */
y = sin(x^2); /* yをxの関数値として格納 */
fma; /* キャンバスのクリア */
plg,y,x,color="blue",width=3,type=1; /*_/_/_/_/ 曲線の描画 _/_/_/_/*/
limits; /* 最大表示にする */
補足
色はwhite,gray,yellow,purple,cyan,blue,green,red,blackがそのまま使えます。
plgl:凡例付き曲線
plgl, y, x, legend=, color=, type=, width=, marks=, closed=
- legend=:凡例として表示する文字列
- 他の引数、キーワードはplgと同じ
外部パラメータ
- my_legend_side ["right" or "left"]:凡例の表示位置
- my_legend_outside [0 or 1]:凡例の表示を枠の内側(0)又は外側(1)にする
win2,400,400; /* ウィンドウを表示(既に表示されている場合は不要) */
x=span(0,4,128); /* 0〜4まで等間隔に128点とりxに格納 */
y = sin(x^2); /* yをxの関数値として格納*/
fmal; /* キャンバスと凡例情報のクリア */
plgl,y,x,color="blue",width=3,type=1,legend="sin(x^2^)";
/*######## 曲線の描画 ########*/
plgl,2.0*y,x,color="red",width=3,type=2,legend="2*sin(x^2^)";
/*######## 曲線の描画 ########*/
limits; /* 最大表示にする */
scaley,0.7,side=2; /*y軸方向のスケーリング*/
xyt,"x-axis","y-axis"; /* 軸の名前を表示 */
補足
scaley,0.7,side=2でy軸方向の両側、side=1で上側、side=0で下側に描画範囲を広げます。
scalexはx軸方向に同様の操作を行います。
scale,0.7とすると、x軸方向とy軸方向の両側で描画範囲を広げます。
描画の前に
my_legend_outside=1; my_legend_side="right";
としておくと、以下のグラフになります.
凡例を左内側にしたい場合は
my_legend_outside=0; my_legend_side="left";
とすれば、以下のグラフになります.
fp:関数プロット
- legend=:凡例として表示する文字列
- 他の引数、キーワードはplgと同じ
win2,400,400; /* ウィンドウを表示(既に表示されている場合は不要) */
fmal; /* キャンバスと凡例情報のクリア */
fp,"sin(x)",0,6;
/*_/_/_/_/ 曲線の描画 _/_/_/_/*/
fp,"1-x^2+0.2*x^3",0,4,legend="1-x^2^+0.2*x^3^";
/*_/_/_/_/ 曲線の描画 _/_/_/_/*/
limits; /* 最大表示にする */
scaley,0.8,side=1; /*y軸方向のスケーリング*/
xyt,"x-axis","y-axis"; /* 軸の名前を表示 */
補足
plfc:塗りつぶし等高線
- z:2次元配列
- y:2次元配列
- x:2次元配列
- levs=:境界値のベクトル
win2,400,400; /* ウィンドウを表示(既に表示されている場合は不要) */
x= span(-3,3,128)(,-:1:128); /* xの値の2次元配列を作る */
y= transpose(x); /* xを転置してyの2次元配列を作る */
z= 0.5*sin(3*sqrt(x^2+y^2)+0.2)*cos((x-y+sin(0.1))); /* zをxとyの関数として計算 */
levs=span(-0.4,0.4,5); /* 等高線の値の設定 */
pal,"heat"; /* 塗りつぶしグラデーションの指定 */
fma; /* キャンバスのクリア */
plfc,z,y,x,levs=levs; /*_/_/_/_/ 塗りつぶし等高線の描画 _/_/_/_/*/
limits; /* 最大表示にする */
cbfc,z,levs=levs,ticks=1,label=1; /* カラーバーを表示 */
補足
pal,"パレット名";
で様々なパレットを指定することが出来ます(earth,gray,heat,sunrise,cr,blue,koge,rg,rg2,by,rr,bb,ggなど)。