[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10. グラフ表示

10.1 グラフ表示に関する諸定義  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10.1 グラフ表示に関する諸定義

変数: IN_NETMATH [FALSE]
NILでなければ、plot2dはopenplot関数に対して適切なグラフ表示の出力を行う。

関数: OPENPLOT_CURVES (list &rest-options)

 
[[x1,y1,x2,y2,...],[u1,v1,u2,v2,...],..]
や
 [[[x1,y1],[x2,y2],...],.. ]
の様な曲線リストを取り、それらのグラフ表示を行う。xgraph_curvesに似ているが、 open plotルーチンを用いる。追加の記号の引数は"{xrange -3 4}"の様に 与える。次の二つの曲線のグラフでは、大きな点で、最初のものにはラベル jimを付け、第二のものにはjaneを付けて表示する。
 
openplot_curves([["{plotpoints 1} {pointsize 6} {label jim}
      {text {xaxislabel {joe is nice}}"] ,
      [1,2,3,4,5,6,7,8],
      ["{label jane} {color pink } "], [3,1,4,2,5,7]]);

他の特別なキーワードはxfun,color,plotpoints,linecolort,pointsize, nolines, bargraph, labelposition, xaxislabelとyaxislabelがある。

関数: PLOT2D (expr,range,...,options,..)
関数: PLOT2D ([expr1,expr2,..,exprn],xrange,...,options,..)
関数: PLOT2D (parametric_expr)
関数: PLOT2D ([..,expr,..,parametric_expr,..],xrange,...,options)
EXPRはY軸について1変数の関数としてグラフ表示される式である。 RANGEは[var,min,max]の形式であり、exprはVARに対してグラフ表示される式である。 二番目のplot2d関数の形式で、式のリストは表示する為に与えても良い。Y方向での 切り捨てはデフォルト値のYの領域に対して行われる。これはoptionや SET_PLOT_OPTIONを用いて指定が行える。

 
plot2d(sin(x),[x,-5,5]);
plot2d(sec(x),[x,-2,2],[y,-20,20],[nticks,200]);

更に、EXPRに助変数式を用いても良い:

PARAMETRIC_EXPRは[parametric, xexpr, yexpr, trange, ..options]の形式 のMAXIMAのリストであり、ここでXEXPRとYEXPRは値域TRANGEの最初の元VARの1変数 関数となる。グラフ表示は[XEXPR, YEXPR]の対で、TRANGEでのVARの変化に 沿った軌跡である。次の例では円を描き、それから、星型が得られる様に幾つかの 点だけで描き、最後に円と一緒にXの通常の関数を描く。

 
(C1) plot2d([parametric,cos(t),sin(t),[t,-%pi*2,%pi*2]]);
(C2) plot2d([parametric,cos(t),sin(t),[t,-%pi*2,%pi*2],
        [nticks,8]]);
(C3) plot2d([x^3+2,[parametric,cos(t),sin(t),[t,-5,5]]],
        [x,-3,3]);

関数: xgraph_curves(list)
xgraphを用いてリストで与えられた'点集合'のリストをグラフ表示する。

点集合の形式は
 
[x0,y0,x1,y1,x2,y2,...] または
[[x0,y0],[x1,y1],....]
とする。点集合はラベルや他の情報を持つ記号を含んでいても良い。

 
 xgraph_curves([pt_set1,pt_set2,pt_set3]);
は、3つの点集合のグラフを3個の曲線として描く。

 
pt_set:append(["NoLines: True","LargePixels: true"],
        [x0,y0,x1,y1,...])

は点集合[とその部分]を構築し、点との間には線分が無い大きな点を用いる。 指定可能なオプションに関しては、xgraphのmanページを見よ。

 
pt_set:append([concat("\"","x^2+y")],[x0,y0,x1,y1,...])
はこの特定の点集合に対して、"label"を"x^2+y"とする。頭の"は xgraphにラベルである事を指定するものである。

 
pt_set:append([concat("TitleText: Sample Data")],[x0,...])
でグラフ表示の表題を"Maxima Plot"の代りに"Sample Data"とする。

.2 unitの幅の棒グラフを作り、異なった棒グラフを二つ表示する為には:
 
xgraph_curves(
       [append(["BarGraph: true","NoLines: true","BarWidth: .2"],
               create_list([i-.2,i^2],i,1,3)),
        append(["BarGraph: true","NoLines: true","BarWidth: .2"],
           create_list([i+.2,.7*i^2],i,1,3))
]);

テンポラリファイルとして`xgraph-out'が使われる。

変数: PLOT_OPTIONS
このリストの要素はグラフ表示に関するデフォルト値である。それらは SET_PLOT_OPTIONを用いて変更しても良い。

 
[X, - 3, 3]
[Y, - 3, 3]

は各々XとYの領域である。 [TRANSFORM_XY, FALSE] にて、FALSEでなければ、
 
make_transform([x,y,z], [f1(x,y,z),f2(x,y,z),f3(x,y,z)])
の出力は3次元から3次元への変換を構成し、これがグラフに適用される。 円筒極座標(polar_xy)は次の様に与えられる。

 
make_transform([r,th,z],[r*cos(th),r*sin(th),z])

 
(* 訳者注:

Geomviewの最新版はhttp://www.geomview.org/より入手可能。このマニュアルの原文
で指定されたURLは現在でも存在するが、ここでは旧版のみが入手可能である。
又、IZICに関しては最新のTCL/TKに適合したものでは無く、その上、表示色数も256色
である。その為、IZICを無理にでもインストールする価値はあまり無い。

*)

関数: PLOT3D (expr,xrange,yrange,...,options,..)
関数: PLOT3D ([expr1,expr2,expr3],xrange,yrange,...,options,..)

 
plot3d(2^(-u^2+v^2),[u,-5,5],[v,-7,7]);
で、変数uとvの領域を各々[-5,5]と[-7,7]、uをX軸、vをY軸として、 z=2^(-u^2+v^2)のグラフを表示する。

二番目の引数のパターンの例は
 
plot3d([cos(x)*(3+y*cos(x/2)),sin(x)*(3+y*cos(x/2)),y*sin(x/2)],
   [x,-%pi,%pi],[y,-1,1],['grid,50,15])
で、これはメビウスの輪を表示し、plot3dの最初の引数で与えられた3個の式で パラメータ付けられている。最後のオプションの['grid,50,15]はXとY方向の 長方形の刻み数を与える。

 
/* REal part of z ^ 1/3 */
 plot3d(r^.33*cos(th/3),[r,0,1],[th,0,6*%pi],
     ['grid,12,80],['plot_format,ps],
     ['transform_xy,polar_to_xy],['view_direction,1,1,1.4],
     ['colour_z,true])
ここで、視点方向は射影の方向を指す。無限遠からこれを行うが、視点方向から 原点への直線は並行になる。他の可視化ツールがインタラクティブなオブジェクトの 回転を許容する為、これは現在、'ps'グラフ表示形式でのみ利用される。

gnuplotにも出力する事が可能である:

 
 plot3d(2^(x^2-y^2),[x,-1,1],[y,-2,2],[plot_format,gnuplot])

時には式の描写を行う関数を定義する必要があるかもしれない。plot3dに渡される 全ての引数はplot3dに渡される前に評価されるので、希望する通りの作業を行う式を 構築する事は難しい事もあるが,関数を構築する事で遥かに簡単なものとなる。

 
M:MATRIX([1,2,3,4],[1,2,3,2],[1,2,3,4],[1,2,3,3])$
f(x,y):=float(M[?round(x),?round(y)]);
plot3d(f,[x,1,4],[y,1,4],['grid,4,4]);

関数: PLOT2D_PS (expr,range)
RANGEに対するEXPRのグラフ表示を行うポストスクリプト命令の列をpstreamに書き 出す。EXPRは1変数の式でなければならない。RANGEはexprの表示で用いる [変数,最小,最大]の書式のものである。CLOSEPSを参照せよ。

関数: CLOSEPS ()
これば表示命令の列の終りに通常呼び出されるべきものである。現行の出力 ストリームPSTREAMを閉じてnilを設定する。pstreamが開いていれば、pstreamを 閉じる為、グラフ表示の最初に呼んでも良い。pstreamに対して書き込む全ての命令 は必要であればpstreamを開く。CLOSEPSは他のグラフ表示命令と分ける。二つの領域 でグラフ表示を行いたい場合や幾つかのグラフ表示の追加を行いたい場合と そのストリームを開いたままにしておかなければならない為である。

関数: SET_PLOT_OPTION (option)
optionはPLOT_OPTIONSリストの要素の一つの形式である。

 
従って、

SET_PLOT_OPTION([grid,30,40])

はplot3dのデフォルト値で刻み数を変更する。記号gridが値を持っていれば、ここで 示す様に、それに引用符をつけなければならない:
 
SET_PLOT_OPTION(['grid,30,40])
これで値が代入されない。

関数: PSDRAW_CURVE (ptlist)

PLISTに含まれる点を結ぶ曲線を描く。後者は[x0,y0,x1,y1,...]か [[x0,y0],[x1,y1],...]の形式である。

関数JOINはxのリストとyのリストを取り、それらを互いに繋ぎ合せる。 PSDRAW_CURVEは単により原始的な関数PSCURVEを呼び出すだけである。

 
定義は次のとおり:

(defun $psdraw_curve (lis)
  (p "newpath")
  ($pscurve lis)
  (p "stroke"))

?DRAW2Dもリストを生成する為に用いても良い。
 
 points1:?draw2d(1/x,[.05,10],.03) 

関数: PSCOM (com)

COMはポストスクリプトファイルに挿入される。

 
例えば、 

  pscom("4.5 72 mul 5.5 72 mul translate  14 14 scale");


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Hiroshi Yokota on September, 16 2002 using texi2html