Next: Functions and Variables for draw, Previous: draw, Up: draw [Contents][Index]
draw
はMaxima-Gnuplotインターフェイスです。
Maximaレベルで使われる3つの主な関数があります:
draw2d
, draw3d
, draw
。
このパッケージのさらに磨きかけられた例のために以下のリンクに従ってください:
http://riotorto.users.sourceforge.net/gnuplot
このプログラムを走らせるにはGnuplot 4.2以上が必要です。
Next: Functions and Variables for pictures, Previous: Introduction to draw, Up: draw [Contents][Index]
関数gr2d
は
2Dシーンを記述するオブジェクトを作ります。
引数はグラフィックオプション、グラフィックオブジェクト、または、
グラフィックオプションとオブジェクト両方を含むリストです。
このシーンは順に解釈されます:
グラフィックオプションはその右に置かれたそれらのグラフィックオブジェクトに影響します。
いくつかのグラフィックオプションはシーンのグローバルな外観に影響します。
以下は2次元のシーンで利用可能なグラフィックオブジェクトのリストです:
bars
, ellipse
, explicit
, image
, implicit
, label
,
parametric
, points
, polar
, polygon
, quadrilateral
,
rectangle
, triangle
, vector
, geomap
(パッケージworldmap
で定義されるもの)。
draw
とdraw2d
も参照してください。
このオブジェクトを利用するには、最初にload("draw")
を書いてください。
関数gr3d
は3dシーンを記述するオブジェクトを作ります。
引数はグラフィックオプション、グラフィックオブジェクト、または
グラフィックオプションとオブジェクト両方を含むリストです。
このシーンは順に解釈されます:
グラフィックオプションはその右に置かれたそれらのグラフィックオブジェクトに影響します。
いくつかのグラフィックオプションはシーンのグローバルな外観に影響します。
以下は3次元のシーンで利用可能なグラフィックオブジェクトのリストです:
cylindrical
, elevation_grid
, explicit
, implicit
,
label
, mesh
, parametric
,
parametric_surface
,
points
, quadrilateral
, spherical
, triangle
,
tube
,
vector
, geomap
(パッケージworldmap
で定義されるもの)。
draw
とdraw3d
も参照してください。
このオブジェクトを利用するには、最初にload("draw")
を書いてください。
一連のシーンをプロットします;
引数はgr2d
やgr3d
のオブジェクトといくつかのオプションです。
デフォルトでは、シーンは1列の中に一緒に置かれます。
関数draw
は以下のグローバルオプションを受け付けます: terminal
,
columns
, dimensions
, file_name
, delay
.
関数draw2d
やdraw3d
は
それぞれ、2次元と3次元に関して、1つのシーンだけが要求される時に使われる
ショートカットです。
gr2d
とgr3d
も参照してください。
この関数を利用するには、最初にload("draw")
を書いてください。
例:
(%i1) load("draw")$ (%i2) scene1: gr2d(title="Ellipse", nticks=30, parametric(2*cos(t),5*sin(t),t,0,2*%pi))$ (%i3) scene2: gr2d(title="Triangle", polygon([4,5,7],[6,4,2]))$ (%i4) draw(scene1, scene2, columns = 2)$
2つの描画文は同値です:
(%i1) load("draw")$ (%i2) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1))); (%o2) [gr3d(explicit)] (%i3) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1)); (%o3) [gr3d(explicit)]
アニメーティドgifファイル:
(%i1) load("draw")$ (%i2) draw( delay = 100, file_name = "zzz", terminal = 'animated_gif, gr2d(explicit(x^2,x,-1,1)), gr2d(explicit(x^3,x,-1,1)), gr2d(explicit(x^4,x,-1,1))); End of animation sequence (%o2) [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
gr2d
, gr3d
, draw2d
, draw3d
も参照してください。
この関数は
draw(gr2d(options, ..., graphic_object, ...))
.
のショートカットです。
2dで唯一のシーンをプロットするのに使うことができます。
この関数を利用するには、最初にload("draw")
を書いてください。
draw
とgr2d
も参照してください。
この関数は
draw(gr3d(options, ..., graphic_object, ...))
のショートカットです。
3dでユニークなシーンをプロットするのに使うことができます。
この関数を利用するには、最初にload("draw")
を書いてください。
draw
とgr3d
も参照してください。
現在のプロットをファイルに保存します。
受け付けられるグラフィックオプションは以下です:
terminal
, dimensions
, file_name
, file_bgcolor
.
例:
(%i1) load("draw")$ (%i2) /* screen plot */ draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)))$ (%i3) /* same plot in eps format */ draw_file(terminal = eps, dimensions = [5,5]) $
この関数を使って、Maximaは
端末termで1ウィンドウマルチプロットモードで機能することができます;
この関数が受け入れる引数は、screen
,
wxt
, aquaterm
, none
です。
マルチプロットモードがイネーブルの時、
draw
へのそれぞれのコールは、
同じウィンドウに以前のものを消すことなく新しいプロットを送ります。
マルチモードをディセーブルにするには、
multiplot_mode(none)
を書いてください。
マルチプロットモードがイネーブルの時、
グローバルオプションterminal
はブロックされます。
別の端末に変更する前に、この機能中のモードをディセーブルしなければいけません。
この特長はWindowsプラットフォームでは機能しません。
例:
(%i1) load("draw")$ (%i2) set_draw_defaults( xrange = [-1,1], yrange = [-1,1], grid = true, title = "Step by step plot" )$ (%i3) multiplot_mode(screen)$ (%i4) draw2d(color=blue, explicit(x^2,x,-1,1))$ (%i5) draw2d(color=red, explicit(x^3,x,-1,1))$ (%i6) draw2d(color=brown, explicit(x^4,x,-1,1))$ (%i7) multiplot_mode(none)$
ユーザーグラフィックオプションを設定します。 この関数は 共通のグラフィックスオプションで一連のグラフィックスをプロットするのに 役に立ちます。 引数なしにこの関数を呼ぶと、ユーザーデフォルトを取り除きます。
例:
(%i1) load("draw")$ (%i2) set_draw_defaults( xrange = [-10,10], yrange = [-2, 2], color = blue, grid = true)$ (%i3) /* plot with user defaults */ draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$ (%i4) set_draw_defaults()$ (%i5) /* plot with standard defaults */ draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
この関数を利用するには、
最初にload("draw")
を書いてください。
デフォルト値: 10
adapt_depth
は適応プロットルーチンが使う分割の最大数です。
このオプションは2dexplicit
関数に対してだけ有効です。
デフォルト値: true
もしaxis_3d
がtrue
なら、
x, y z軸が3dシーンで表示されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(axis_3d = false, explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
2dでの軸に関しては、
axis_bottom
, axis_left
, axis_top
, axis_right
も
参照してください。
デフォルト値: true
もしaxis_bottom
がtrue
なら、
底の軸は2dシーンで表示されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(axis_bottom = false, explicit(x^3,x,-1,1))$
axis_left
, axis_top
, axis_right
, axis_3d
も参照してください。
デフォルト値: true
もしaxis_left
がtrue
なら、
左の軸が2dシーンで表示されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(axis_left = false, explicit(x^3,x,-1,1))$
axis_bottom
, axis_top
, axis_right
, axis_3d
も参照してください。
デフォルト値: true
もしaxis_right
がtrue
なら、
2dシーンで右軸が表示されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(axis_right = false, explicit(x^3,x,-1,1))$
axis_bottom
, axis_left
, axis_top
, axis_3d
も
参照してください。
デフォルト値: true
もしaxis_top
がtrue
なら、
上部の軸が2dシーンで表示されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(axis_top = false, explicit(x^3,x,-1,1))$
axis_bottom
, axis_left
, axis_right
, axis_3d
も参照してください。
デフォルト値: white
端末gif
, png
, jpg
, gif
のための背景色を設定します。
デフォルト背景色は白です。
color
も参照してください。
デフォルト値: true
もしborder
がtrue
なら、
ポリゴンの境界はline_type
とline_width
に従って塗られます。
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: polygon
, rectangle
, とellipse
.
例:
(%i1) load("draw")$ (%i2) draw2d(color = brown, line_width = 8, polygon([[3,2],[7,2],[5,5]]), border = false, fill_color = blue, polygon([[5,2],[9,2],[7,5]]) )$
デフォルト値: auto
もしcbrange
がauto
なら
enhanced3d
がfalse
でない時
色付けられる値の範囲は自動的に計算されます。
カラー範囲外の値は、最も近い端の色を使います。
enhanced3d
やcolorbox
がfalse
の時、
オプションcbrange
は効果を持ちません。
もしユーザーが
色付けられた値の特定の区間が欲しいなら、
cbrange=[-2, 3]
のようにMaximaリストとして与えられなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw3d ( enhanced3d = true, color = green, cbrange = [-3,10], explicit(x^2+y^2, x,-2,2,y,-2,2)) $
enhanced3d
, colorbox
, cbtics
も参照してください。
デフォルト値: auto
このグラフィックオプションは、
オプションenhanced3d
がfalse
でない時、
カラーボックス上にチックマークを描く方法を制御します。
enhanced3d
かcolorbox
がfalse
の時、
オプションcbtics
は効果を持ちません。
完全な記述に関しては、xtics
を参照してください。
例:
(%i1) load("draw")$ (%i2) draw3d ( enhanced3d = true, color = green, cbtics = {["High",10],["Medium",05],["Low",0]}, cbrange = [0, 10], explicit(x^2+y^2, x,-2,2,y,-2,2)) $
enhanced3d
, colorbox
, cbrange
も参照してください。
デフォルト値: "blue"
color
は、線や点、ポリゴンやラベルの境界をプロットする色を指定します。
色は名前や16進数のrgbコードとして与えられます。
利用可能な色の名前は以下のものです:
white black gray0 grey0 gray10 grey10 gray20 grey20 gray30 grey30 gray40 grey40 gray50 grey50 gray60 grey60 gray70 grey70 gray80 grey80 gray90 grey90 gray100 grey100 gray grey light_gray light_grey dark_gray dark_grey red light_red dark_red yellow light_yellow dark_yellow green light_green dark_green spring_green forest_green sea_green blue light_blue dark_blue midnight_blue navy medium_blue royalblue skyblue cyan light_cyan dark_cyan magenta light_magenta dark_magenta turquoise light_turquoise dark_turquoise pink light_pink dark_pink coral light_coral orange_red salmon light_salmon dark_salmon aquamarine khaki dark_khaki goldenrod light_goldenrod dark_goldenrod gold beige brown orange dark_orange violet dark_violet plum purple
16進コードでの色彩成分は形式"#rrggbb"
で導入されます。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */ color = "red", explicit(0.5 + x^2,x,-1,1), color = blue, explicit(1 + x^2,x,-1,1), color = "light-blue", /* double quotes if - is used */ explicit(1.5 + x^2,x,-1,1), color = "#23ab0f", label(["This is a label",0,1.2]) )$
fill_color
も参照してください。
デフォルト値: true
もしcolorbox
がtrue
なら、
ラベルなしの色スケールがimage
2Dオブジェクトか色付けされた3dオブジェクトと一緒に
描かれます。
もしcolorbox
がfalse
なら、
色スケールは表示されません。
もしcolorbox
が文字列なら、ラベル付き色スケールが描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) im: apply('matrix, makelist(makelist(random(200),i,1,30),i,1,30))$ (%i3) draw2d(image(im,0,0,30,30))$ (%i4) draw2d(colorbox=false, image(im,0,0,30,30))$
palette
も参照してください。
デフォルト値: 1
columns
は多重プロットでの列の数です。
これはグローバルグラフィックオプションなので、
シーン記述での位置はかまいません。
関数draw
の引数として使うこともできます。
例:
(%i1) load("draw")$ (%i2) scene1: gr2d(title="Ellipse", nticks=30, parametric(2*cos(t),5*sin(t),t,0,2*%pi))$ (%i3) scene2: gr2d(title="Triangle", polygon([4,5,7],[6,4,2]))$ (%i4) draw(scene1, scene2, columns = 2)$
デフォルト値: none
オプションcontour
を使うと、ユーザーは
等高線をプロットする場所を選択できます。
可能な値は以下の通りです:
none
:
等高線がプロットされません。
base
:
等高線がxy平面上に射影されます。
surface
:
等高線が表面にプロットされます。
both
:
2つの等高線がプロットされます:xy平面上と表面と。
map
:
等高線がxy平面上に射影されて、観点がちょうど垂直に設定されます。
これはグローバルグラフィックオプションなので、 シーン記述での位置はかまいません。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3), contour_levels = 15, contour = both, surface_hide = true) $
デフォルト値: 5
このグラフィックオプションは、
等高線が描かれる方法を制御します。
contour_levels
は、正の整数、3つの数のリスト、または、
数の任意の集合に設定することができます:
contour_levels
が正の整数nにバインド(bounded)されている時、
nこの等高線が等しい間隔で描かれます。
デフォルトでは、
5つの等しく間隔の空けられた等高線がプロットされます。
contour_levels
が
形式[lowest,s,highest]
の長さ3のリストにバインド(bounded)されている時、
等高線は
lowest
からhighest
へs
個のステップでプロットされます。
contour_levels
が
形式{n1, n2, ...}
の数の集合にバインド(bounded)されている時、
等高線は
値n1
, n2
, ...にプロットされます。
これはグローバルグラフィックオプションなので、 シーン記述での位置はかまいません。
例:
10の等しく間隔の空けられた等高線。 レベルの実際の数は簡単なラベルを与えるために調整することができます。
(%i1) load("draw")$ (%i2) draw3d(color = green, explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3), contour_levels = 10, contour = both, surface_hide = true) $
-8から8まで4つのステップで。
(%i1) load("draw")$ (%i2) draw3d(color = green, explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3), contour_levels = [-8,4,8], contour = both, surface_hide = true) $
レベル-7, -6, 0.8, 5での等値線。
(%i1) load("draw")$ (%i2) draw3d(color = green, Explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3), Contour_levels = {-7, -6, 0.8, 5}, Contour = both, Surface_hide = true) $
contour
も参照してください。
デフォルト値: "data.gnuplot"
これは、 リクエストされたプロットを構築するためにGnuplotが必要とする数値データを含む ファイルの名前です。
これはグローバルグラフィックスオプションなので、
シーン記述の位置は問題なりません。
関数draw
の引数としても使うことができます。
gnuplot_file_name
の中で例を参照してください。
デフォルト値: 5
これは アニメーションgifファイルにおけるフレームの1/100秒単位の遅延です。
これはグローバルグラフィックスオプションなので、
シーン記述の位置は問題なりません。
関数draw
の引数としても使うことができます。
例:
(%i1) load("draw")$ (%i2) draw( delay = 100, file_name = "zzz", terminal = 'animated_gif, gr2d(explicit(x^2,x,-1,1)), gr2d(explicit(x^3,x,-1,1)), gr2d(explicit(x^4,x,-1,1))); End of animation sequence (%o2) [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
オプションdelay
はアニメーションgifに関してだけアクティブです;
他のいかなる場合も無視されます。
terminal
, dimensions
も参照してください。
デフォルト値: [600,500]
出力端末の寸法。 その値は、幅と高さで形成されるリストです。 2つの数の意味は使っている端末に依存します。
端末gif
, animated_gif
, png
, jpg
,
svg
, screen
, wxt
, aquaterm
では、
整数はそれぞれの方向の点の数を表します。
もし整数でないなら、丸められます。
端末eps
, eps_color
, pdf
, pdfcairo
では、
両方の数は1/100cm単位の長さを表します。
デフォルトでは、これらのフォーマットでの画像は幅6cm、高さ5cmであることを意味します。
これはグローバルグラフィックオプションなので、
シーン記述での位置は関係ありません。
関数draw
の引数として使われることもあります。
例:
ファイル出力とwxtキャンバスに適用されたオプションdimensions
。
(%i1) load("draw")$ (%i2) draw2d( dimensions = [300,300], terminal = 'png, explicit(x^4,x,-1,1)) $ (%i3) draw2d( dimensions = [300,300], terminal = 'wxt, explicit(x^4,x,-1,1)) $
eps出力に適用されたオプションdimensions
。
A4縦寸法のepsファイルが欲しいです。
(%i1) load("draw")$ (%i2) A4portrait: 100*[21, 29.7]$ (%i3) draw3d( dimensions = A4portrait, terminal = 'eps, explicit(x^2-y^2,x,-2,2,y,-2,2)) $
デフォルト値: false
もしenhanced3d
がfalse
なら、
3dプロットで表面は色付けられません。
もしenhanced3d
がtrue
なら、
Gnuplotのpm3dモードを設定して表面が色付けられます。
もし式がenhanced3d
に与えられるなら、
それはpalette
に従って色を割り当てるのに使われます;
この式の中の変数は表面記述で使われるものと同じでなければいけません。
如何にパレットが指定されるか知るためには、オプションpalette
を参照してください。
例:
(%i1) load("draw")$ (%i2) draw3d( surface_hide = true, enhanced3d = true, palette = gray, explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$ (%i3) draw3d( surface_hide = true, /* same variables x and y as */ /* in explicit below: */ enhanced3d = sin(x*y), explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$ (%i4) draw3d( color = blue, nticks = 60, line_width = 3, enhanced3d = (u-1)^2, parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2))$
デフォルト値: y
値はx
, y
, xy
を取り得ますが、その値に依存して、
グラフィックオブジェクトerrors
は水平エラーバー、垂直エラーバー、その両方を伴って
点を描画します。
error_type=boxes
の時、クロスの代わりにボックスが描かれます。
errors
も参照してください。
デフォルト値: "maxima_out"
これは、
端末png
, jpg
, eps
, eps_color
, pdf
, pdfcairo
がグラフィックを保存する
ファイルの名前です。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(file_name = "myfile", explicit(x^2,x,-1,1), terminal = 'png)$
terminal
, dimensions
も参照してください。
デフォルト値: "red"
fill_color
はポリゴンと2d explicit
関数を塗りつぶすための色を指定します。
如何に色が指定されるかを知るにはcolor
を参照してください。
デフォルト値: 0
fill_density
は、bars
オブジェクトに関してfill_color
の強度を指定する0と1の間の数です。
例を見るにはbars
を参照してください。
デフォルト値: false
オプションfilled_func
は
関数によって制限された領域が如何に塗りつぶされるべきかを
制御します。
filled_func
がtrue
の時、
オブジェクトexplicit
とグラフィックウィンドウの底で定義された関数によって
閉ざされた領域はfill_color
で塗りつぶされます。
filled_func
が関数式を含む時、
この関数とオブジェクトexplicit
で定義された関数によって閉ざされた領域が
塗りつぶされます。
デフォルトでは、陽な関数は塗りつぶされません。
このオプションは2dグラフィックオブジェクトexplicit
だけに影響します。
例:
explicit
オブジェクトとグラフィックウィンドウによって閉ざされた領域。
(%i1) load("draw")$ (%i2) draw2d(fill_color = red, filled_func = true, explicit(sin(x),x,0,10) )$
explicit
オブジェクト
とオプションfilled_func
で定義された関数によって閉ざされた領域。
filled_func
の中の変数は must be the same as that used in
explicit
の中で使われるものと同じでなければいけないことに注意してください。
(%i1) load("draw")$ (%i2) draw2d(fill_color = grey, filled_func = sin(x), explicit(-sin(x),x,0,%pi));
fill_color
とexplicit
も参照してください。
デフォルト値: ""
(empty string)
このオプションは 端末が使う書体を設定するために使うことができます。 プロットを通して書体とサイズは1つだけ使うことができます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
font_size
も参照してください。
Gnuplotはそれ自身フォントを扱いません。 異なる端末のサポートライブラリに任せます。 それぞれはフォントに関して独自の哲学を持っています。 簡単なまとめは以下の通りです:
例:
(%i1) load("draw")$ (%i2) draw2d(font = "Arial", font_size = 20, label(["Arial font, size 20",1,1]))$
GDFONTPATH
の中に保持されたフォントパスを使います;
この場合、オプションfont
をフォント名に設定することだけが必要です。
フォントファイルへの完全なパスを与えることも可能です。
例:
オプションfont
はフォントファイルへの完全なパスを与えることができます:
(%i1) load("draw")$ (%i2) path: "/usr/share/fonts/truetype/freefont/" $ (%i3) file: "FreeSerifBoldItalic.ttf" $ (%i4) draw2d( font = concat(path, file), font_size = 20, color = red, label(["FreeSerifBoldItalic font, size 20",1,1]), terminal = png)$
もし環境変数GDFONTPATH
が
フォントファイルが配置されているパスに設定されているなら、
set グラフィックオプションfont
をフォント名に設定することが可能です。
(%i1) load("draw")$ (%i2) draw2d( font = "FreeSerifBoldItalic", font_size = 20, color = red, label(["FreeSerifBoldItalic font, size 20",1,1]), terminal = png)$
"Times-Roman"
, "Times-Italic"
, "Times-Bold"
,
"Times-BoldItalic"
,"Helvetica"
, "Helvetica-Oblique"
, "Helvetica-Bold"
,"Helvetic-BoldOblique"
, "Courier"
,
"Courier-Oblique"
, "Courier-Bold"
,"Courier-BoldOblique"
。
例:
(%i1) load("draw")$ (%i2) draw2d( font = "Courier-Oblique", font_size = 15, label(["Courier-Oblique font, size 15",1,1]), terminal = eps)$
fontconfig
ユーティリティを介してフォントを見つけます。
"Times-Roman"
です。
Gnuplotドキュメンテーションは端末とフォントに関する情報の重要なソースです。
デフォルト値: 10
このオプションは、
フォントサイズを端末によって使われるように設定するために使うことができます。
1つの書体とサイズだけがプロットの間中で使うことができます。
オプションfont
が空の文字列に等しくない時だけ、
font_size
はアクティブです。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
font
も参照してください。
デフォルト値: "maxout.gnuplot"
これは、 Gnuplotで処理される必要なコマンドを含む ファイルの名前です。
これはグローバルグラフィックスオプションなので、
シーン記述の位置は問題なりません。
関数draw
の引数としても使うことができます。
例:
(%i1) load("draw")$ (%i2) draw2d( file_name = "my_file", gnuplot_file_name = "my_commands_for_gnuplot", data_file_name = "my_data_for_gnuplot", terminal = png, explicit(x^2,x,-1,1)) $
data_file_name
も参照してください。
デフォルト値: false
もしgrid
がtrue
なら、
xy平面上に格子が描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(grid = true, explicit(exp(u),u,-2,2))$
デフォルト値: 45
head_angle
は矢印の頭と線分の間の角度を度の単位で示します。
このオプションはvector
オブジェクトに対してだけ有効です。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,10], yrange = [0,9], head_length = 0.7, head_angle = 10, vector([1,1],[0,6]), head_angle = 20, vector([2,1],[0,6]), head_angle = 30, vector([3,1],[0,6]), head_angle = 40, vector([4,1],[0,6]), head_angle = 60, vector([5,1],[0,6]), head_angle = 90, vector([6,1],[0,6]), head_angle = 120, vector([7,1],[0,6]), head_angle = 160, vector([8,1],[0,6]), head_angle = 180, vector([9,1],[0,6]) )$
head_both
, head_length
, head_type
も参照してください。
デフォルト値: false
もしhead_both
がtrue
なら、
ベクトルは2つの矢先と共に描画されます。
もしfalse
なら1つの矢だけが描かれます。
このオプションはvector
オブジェクトに対してだけ有効です。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,8], yrange = [0,8], head_length = 0.7, vector([1,1],[6,0]), head_both = true, vector([1,7],[6,0]) )$
See also head_length
, head_angle
, and head_type
.
デフォルト値: 2
head_length
は矢印の頭の長さをx-軸の単位で示します。
このオプションはvector
オブジェクトに対してだけ有効です。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,12], yrange = [0,8], vector([0,1],[5,5]), head_length = 1, vector([2,1],[5,5]), head_length = 0.5, vector([4,1],[5,5]), head_length = 0.25, vector([6,1],[5,5]))$
head_both
, head_angle
, head_type
も参照してください。
デフォルト値: filled
head_type
は矢印の頭を如何にプロットするかを指定するのに使われます。
可能な値は以下の通りです: filled
(閉じていて塗りつぶされた矢印の頭), empty
(閉じているが塗りつぶされていない矢印の頭), nofilled
(開いた矢印の頭).
このオプションはvector
オブジェクトにだけ有効です。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,12], yrange = [0,10], head_length = 1, vector([0,1],[5,5]), /* default type */ head_type = 'empty, vector([3,1],[5,5]), head_type = 'nofilled, vector([6,1],[5,5]))$
head_both
, head_angle
, head_length
も参照してください。
デフォルト値: [50, 50]
ip_grid
はインプリシットなプロットでの最初のサンプリングのためにグリッドを設定します。
このオプションはimplicit
オブジェクトに対してだけ関係があります。
デフォルト値: [5, 5]
ip_gridi_in
はインプリシットなプロットでの二番目のサンプリングのためにグリッドを設定します。
このオプションはimplicit
オブジェクトに対してだけ関係があります。
デフォルト値: ""
(empty string)
key
は凡例の中の関数名です。
もしkey
が空の文字列なら、
関数にキーは割り当てられません。
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: points
, polygon
, rectangle
,
ellipse
, vector
, explicit
, implicit
,
parametric
, とpolar
。
gr3d
: points
, explicit
, parametric
,
とparametric_surface
例:
(%i1) load("draw")$ (%i2) draw2d(key = "Sinus", explicit(sin(x),x,0,10), key = "Cosinus", color = red, explicit(cos(x),x,0,10) )$
デフォルト値: center
label_alignment
は
与えられた座標に関するラベルを書く場所を指定するのに使われます。
可能な値は以下のものです: center
, left
, right
.
このオプションはlabel
オブジェクトに対してだけ有効です。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,10], yrange = [0,10], points_joined = true, points([[5,0],[5,10]]), color = blue, label(["Centered alignment (default)",5,2]), label_alignment = 'left, label(["Left alignment",5,5]), label_alignment = 'right, label(["Right alignment",5,8]))$
label_orientation
, color
も参照してください。
デフォルト値: horizontal
label_orientation
はラベルの向きを指定するのに使われます。
可能な値は以下のものです: horizontal
, vertical
.
このオプションはlabel
オブジェクトに対してだけ有効です。
例:
この例では、ダミーの点がイメージを得るために加えられます。
パッケージdraw
はいつもシーンを描くのにデータを必要とします。
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,10], yrange = [0,10], point_size = 0, points([[5,5]]), color = navy, label(["Horizontal orientation (default)",5,2]), label_orientation = 'vertical, color = "#654321", label(["Vertical orientation",1,5]))$
label_alignment
とcolor
も参照してください。
デフォルト値: solid
line_type
は線が如何に表示されるかを示します;
可能な値はsolid
とdots
です。
このオプションは以下のグラフィックオブジェクトに鋭意供します:
gr2d
: points
, polygon
, rectangle
,
ellipse
, vector
, explicit
, implicit
,
parametric
とpolar
。
gr3d
: points
, explicit
, parametric
とparametric_surface
。
例:
(%i1) load("draw")$ (%i2) draw2d(line_type = dots, explicit(1 + x^2,x,-1,1), line_type = solid, /* default */ explicit(2 + x^2,x,-1,1))$
See also line_width
.
デフォルト値: 1
line_width
はプロットされる線の幅です。
その値は正の数でなければいけません。
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: points
, polygon
, rectangle
,
ellipse
, vector
, explicit
, implicit
,
parametric
とpolar
.
gr3d
: points
とparametric
.
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */ line_width = 5.5, explicit(1 + x^2,x,-1,1), line_width = 10, explicit(2 + x^2,x,-1,1))$
line_type
も参照してください。
デフォルト値: false
もしlogcb
がtrue
なら、
カラーボックスのチックは対数スケールで描かれます。
enhanced3d
かcolorbox
がfalse
の時、
オプションlogcb
は効果を持ちません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw3d ( enhanced3d = true, color = green, logcb = true, logz = true, palette = [-15,24,-9], explicit(exp(x^2-y^2), x,-2,2,y,-2,2)) $
enhanced3d
, colorbox
, cbrange
も参照してください。
デフォルト値: false
もしlogx
がtrue
なら、
x軸は対数スケールで描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(log(x),x,0.01,5), logx = true)$
logy
, logz
も参照してください。
デフォルト値: false
もしlogy
がtrue
なら、
y軸は対数スケールで描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(logy = true, explicit(exp(x),x,0,5))$
logx
, logz
も参照してください。
デフォルト値: false
もしlogz
がtrue
なら、
z軸は対数スケールで描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw3d(logz = true, explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
logx
, logy
も参照してください。
デフォルト値: 29
2dでは、nticks
は、
陽なオブジェクトに関する適応プロットルーチンによって使われる点の初期数を与えます。
それはパラメトリック曲線と極座標曲線で示される点の数でもあります。
このオプションは以下のグラフィックオブジェクトに影響を与えます:
gr2d
: ellipse
, explicit
, parametric
とpolar
。
gr3d
: parametric
。
例:
(%i1) load("draw")$ (%i2) draw2d(transparent = true, ellipse(0,0,4,2,0,180), nticks = 5, ellipse(0,0,4,2,180,180) )$
デフォルト値: color
palette
はグレイレベルを色成分上にマップする仕方を示します。
3Dオブジェクトでのオプションenhanced3d
と一緒に機能します。
3Dオブジェクトは表面のすべての点を実数かグレイレベルに関連付けます。
グレイイメージとも一緒に機能します。palette
によってレベルは色に変換されます。
これらの変換を定義するには2つの方法があります。
1つ目の方法では、palette
は、-36から+36までの範囲の成分の長さ3のベクトルです;
それぞれの値は
それぞれ赤、緑、青色上にレベルをマップする公式に関する添字です:
0: 0 1: 0.5 2: 1 3: x 4: x^2 5: x^3 6: x^4 7: sqrt(x) 8: sqrt(sqrt(x)) 9: sin(90x) 10: cos(90x) 11: |x-0.5| 12: (2x-1)^2 13: sin(180x) 14: |cos(180x)| 15: sin(360x) 16: cos(360x) 17: |sin(360x)| 18: |cos(360x)| 19: |sin(720x)| 20: |cos(720x)| 21: 3x 22: 3x-1 23: 3x-2 24: |3x-1| 25: |3x-2| 26: (3x-1)/2 27: (3x-2)/2 28: |(3x-1)/2| 29: |(3x-2)/2| 30: x/0.32-0.78125 31: 2*x-0.84 32: 4x;1;-2x+1.84;x/0.08-11.5 33: |2*x - 0.5| 34: 2*x 35: 2*x - 0.5 36: 2*x - 1
負の数は負の色成分を意味します。
palette = gray
とpalette = color
は、
それぞれpalette = [3,3,3]
とpalette = [7,5,15]
の
ショートカットです
2つ目の方法では、palette
はユーザー定義のルックアップテーブルです。
この場合、長さn
のルックアップテーブルを構成するフォーマットは
palette=[color_1, color_2, ..., color_n
です。
ここで、color_i
は、color_i
が最低のグレイレベルに割り当てられ、
color_n
が最高に割り当てられるような均整のとれた色です
(オプションcolor
を参照してください)。
残りの色は内挿されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
3Dオブジェクトでのオプションenhanced3d
と一緒に機能します。
(%i1) load("draw")$ (%i2) draw3d( enhanced3d = [z-x+2*y,x,y,z], palette = [32, -8, 17], explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
グレイイメージとも一緒に機能します。
(%i1) load("draw")$ (%i2) im: apply( 'matrix, makelist(makelist(random(200),i,1,30),i,1,30))$ (%i3) /* palette = color, default */ draw2d(image(im,0,0,30,30))$ (%i4) draw2d(palette = gray, image(im,0,0,30,30))$ (%i5) draw2d(palette = [15,20,-4], colorbox=false, image(im,0,0,30,30))$
palette
はユーザー定義のルックアップテーブルの場合があります。
この例では、ple, low values of
x
の低いレベルは赤に割り当てられ、高いレベルは黄色に割り当てられています。
(%i1) load("draw")$ (%i2) draw3d( palette = [red, blue, yellow], enhanced3d = x, explicit(x^2+y^2,x,-1,1,y,-1,1)) $
colorbox
も参照してください。
デフォルト値: 1
point_size
はプロットされる点のサイズを設定します。
非負数でなければいけません。
グラフィックオプションpoint_type
がdot
に設定される時
このオプションは効果を持ちません。
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: points
.
gr3d
: points
.
例:
(%i1) load("draw")$ (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)), point_size = 5, points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
デフォルト値: 1
point_type
は、いかに孤立した点が表示されるかを示します;
このオプションの値は、-1以上の整数インデックスもしくは点スタイルの名前であり得ます:
$none
(-1), dot
(0), plus
(1), multiply
(2),
asterisk
(3), square
(4), filled_square
(5), circle
(6),
filled_circle
(7), up_triangle
(8), filled_up_triangle
(9),
down_triangle
(10), filled_down_triangle
(11), diamant
(12),filled_diamant
(13).
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: points
.
gr3d
: points
.
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,10], yrange = [0,10], point_size = 3, point_type = diamant, points([[1,1],[5,1],[9,1]]), point_type = filled_down_triangle, points([[1,2],[5,2],[9,2]]), point_type = asterisk, points([[1,3],[5,3],[9,3]]), point_type = filled_diamant, points([[1,4],[5,4],[9,4]]), point_type = 5, points([[1,5],[5,5],[9,5]]), point_type = 6, points([[1,6],[5,6],[9,6]]), point_type = filled_circle, points([[1,7],[5,7],[9,7]]), point_type = 8, points([[1,8],[5,8],[9,8]]), point_type = filled_diamant, points([[1,9],[5,9],[9,9]]) )$
デフォルト値: false
points_joined
がtrue
の時、
点は線で結ばれます;
false
の時、孤立した点が描かれます。
このグラフィックオプションの三番目の可能な値はimpulses
です;
この場合、点からx軸(2D)もしくはxy平面(3D)へ垂直の線分が描かれます。
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: points
.
gr3d
: points
.
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,10], yrange = [0,4], point_size = 3, point_type = up_triangle, color = blue, points([[1,1],[5,1],[9,1]]), points_joined = true, point_type = square, line_type = dots, points([[1,2],[5,2],[9,2]]), point_type = circle, color = red, line_width = 7, points([[1,3],[5,3],[9,3]]) )$
デフォルト値: none
proportional_axes
がxy
に等しい時、
それらの相対的な長さに比例する軸で2Dシーンが描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
このオプションは2Dプロットでだけ機能します。
一旦Gnuplot 4.3が公式にリリースされたら、
proportional_axes
は3Dプロットに拡張させるでしょう。
例:
単プロット。
(%i1) load("draw")$ (%i2) draw2d( ellipse(0,0,1,1,0,360), transparent=true, color = blue, line_width = 4, ellipse(0,0,2,1/2,0,360), proportional_axes = xy) $
多重プロット。
(%i1) load("draw")$ (%i2) draw( terminal = wxt, gr2d(proportional_axes = xy, explicit(x^2,x,0,1)), gr2d(explicit(x^2,x,0,1), xrange = [0,1], yrange = [0,2], proportional_axes=xy), gr2d(explicit(x^2,x,0,1))
デフォルト値: false
もしsurface_hide
がtrue
なら、
隠れた部分は3d表面にプロットされません。
これはグローバルグラフィックオプションなので、 シーン記述での位置はかまいません。
例:
(%i1) load("draw")$ (%i2) draw(columns=2, gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)), gr3d(surface_hide = true, explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
デフォルト値: screen
Gnuplotが使う端末を選択します; 可能な値は:
screen
(デフォルト), png
, pngcairo
, jpg
, eps
, eps_color
,
pdf
, pdfcairo
, gif
, animated_gif
, wxt
, aquaterm
.
端末screen
, wxt
, aquaterm
は2つの要素を持つリストとしても定義できます:
端末自身の名前と非負の整数。
この形式では、それぞれ対応する番号を持つ複数のウィンドウを同時に開くことができます。
この特長はWindowsプラットフォームでは機能しません。
これはグローバルグラフィックスオプションなので、
シーン記述の位置は問題になりません。
関数draw
の引数としても使われます。
注意せよ―pdfcairoはGnuplot 4.3を必要とします。
(2008年11月)現在、Gnuplot 4.3は開発バージョンです。
pdfは、
Gnuplot 4.2/4.3を
オプション--enable-pdf
でコンパイルすることを
必要とし、libpdfがインストールされていなければいけません。
pdfライブラリは以下で利用可能です: http://www.pdflib.com/en/download/pdflib-family/pdflib-lite/
例:
(%i1) load("draw")$ (%i2) /* screen terminal (default) */ draw2d(explicit(x^2,x,-1,1))$ (%i3) /* png file */ draw2d(terminal = 'png, explicit(x^2,x,-1,1))$ (%i4) /* jpg file */ draw2d(terminal = 'jpg, dimensions = [300,300], explicit(x^2,x,-1,1))$ (%i5) /* eps file */ draw2d(file_name = "myfile", explicit(x^2,x,-1,1), terminal = 'eps)$ (%i6) /* pdf file */ draw2d(file_name = "mypdf", dimensions = 100*[12.0,8.0], explicit(x^2,x,-1,1), terminal = 'pdf)$ (%i7) /* wxwidgets window */ draw2d(explicit(x^2,x,-1,1), terminal = 'wxt)$
複数のウィンドウ。
(%i1) load("draw")$ (%i2) draw2d(explicit(x^5,x,-2,2), terminal=[screen, 3])$ (%i3) draw2d(explicit(x^2,x,-2,2), terminal=[screen, 0])$
動画gifファイル。
(%i1) load("draw")$ (%i2) draw( delay = 100, file_name = "zzz", terminal = 'animated_gif, gr2d(explicit(x^2,x,-1,1)), gr2d(explicit(x^3,x,-1,1)), gr2d(explicit(x^4,x,-1,1))); End of animation sequence (%o2) [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
オプションdelay
は動画gifでだけ有効です;
他のいかなる場合も無視されます。
file_name
, dimensions
, delay
も参照してください。
デフォルト値: ""
(empty string)
オプションtitle
、文字列は、シーンのメインタイトルです。
デフォルトではタイトルは書かれません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(exp(u),u,-2,2), title = "Exponential function")$
デフォルト値: none
もしtransform
がnone
なら、
空間は変換されず、グラフィックオブジェクトは定義の通り描画されます。
空間変換が望まれた時、リストがオプションtransform
に割り当てられなければいけません。
2Dシーンの場合、
リストは形式[f1(x,y), f2(x,y), x, y]
を取ります。
3Dシーンの場合、
リストは形式[f1(x,y,z), f2(x,y,z), f3(x,y,z), x, y, z]
を取ります。
リストの中で定義されている変数名は
グラフィックオブジェクトの定義の中で使われるものと異なるかもしれません。
例:
2Dの回転。
(%i1) load("draw")$ (%i2) th : %pi / 4$ (%i3) draw2d( color = "#e245f0", proportional_axes = 'xy, line_width = 8, triangle([3,2],[7,2],[5,5]), border = false, fill_color = yellow, transform = [cos(th)*x - sin(th)*y, sin(th)*x + cos(th)*y, x, y], triangle([3,2],[7,2],[5,5]) )$
3Dでの変形。
(%i1) load("draw")$ (%i2) draw3d( color = "#a02c00", explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3), transform = [x+10,y+10,z+10,x,y,z], color = blue, explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3) )$
デフォルト値: false
もしtransparent
がtrue
なら、
ポリゴンの内側の領域はfill_color
に従って塗りつぶされます。
このオプションは以下のグラフィックオブジェクトに影響します:
gr2d
: polygon
, rectangle
, とellipse
.
例:
(%i1) load("draw")$ (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]), transparent = true, color = blue, polygon([[5,2],[9,2],[7,5]]) )$
デフォルト値: [open, open]
グラフィックオブジェクトtube
の極値が開いたままか
閉じていなければいけないかを示唆する
2つの可能性のある要素open
とclosed
を持つリスト。
デフォルトでは、どちらの極値も開いたままです。
例:
(%i1) load("draw")$ (%i2) draw3d( tube_extremes = [open, closed], tube(0, 0, a, 1, a, 0, 8) )$
デフォルト値: false
もしunit_vectors
がtrue
なら、
ベクトルは単位1でプロットされます。
これはベクトル場をプロットするのに役に立ちます。
もしunit_vectors
がfalse
なら、
ベクトルは元の長さでプロットされます。
このオプションはvector
オブジェクトに対してだけ有効です。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [-1,6], yrange = [-1,6], head_length = 0.1, vector([0,0],[5,2]), unit_vectors = true, color = red, vector([0,3],[5,2]))$
デフォルト値: ""
(empty string)
熟練Gnuplotユーザーは、
plot
やsplot
コマンドの前に送られる設定を書くことで、
このオプションを利用して、
Gnuplotの振る舞いを微調整することができます。
このオプションの値は文字列か(行毎に1つの)文字列のリスト でなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
ダム端末は、パッケージdraw
でサポートされていませんが、
オプションuser_preamble
の利用によって、それを設定することが可能です。
(%i1) load("draw")$ (%i2) draw2d(explicit(exp(x)-1,x,-1,1), parametric(cos(u),sin(u),u,0,2*%pi), user_preamble="set terminal dumb")$
デフォルト値: [60,30]
3Dシーンでビュー方向を示す度数で測られた角度の対。 最初の角度はx軸回りの垂直回転であり、[0, 180]の範囲です。 二番目はz回りの水平回転であり、[0, 360]の範囲です。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(view = [170, 360], explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
デフォルト値: 10
x_voxel
は
3d 暗黙の
オブジェクトで実装されたマーチングキューブアルゴリズム
x方向のボクセルの数です。
グラフィックオブジェクトregion
でも使われます。
デフォルト値: false
もしxaxis
がtrue
なら、
x軸が描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), xaxis = true, xaxis_color = blue)$
xaxis_width
, xaxis_type
, xaxis_color
も参照してください。
デフォルト値: "black"
xaxis_color
はx軸の色を指定します。
いかに色が定義されるかを知るにはcolor
を参照してください。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), xaxis = true, xaxis_color = red)$
xaxis
, xaxis_width
, xaxis_type
も参照してください。
デフォルト値: false
もしxaxis_secondary
がtrue
なら、
関数値が、二番目のx軸に関してプロットされるかもしれません。
二番目のx軸はシーンのトップに描かれます。
これは、2dプロットにだけ影響する局所的なグラフィックオプションであることに注意してください。
例:
(%i1) load("draw")$ (%i2) draw2d( key = "Bottom x-axis", explicit(x+1,x,1,2), color = red, key = "Above x-axis", xtics_secondary = true, xaxis_secondary = true, explicit(x^2,x,-1,1)) $
xrange_secondary
, xtics_secondary
, xtics_rotate_secondary
,
xtics_axis_secondary
, xaxis_secondary
も参照してください。
デフォルト値: dots
xaxis_type
はx軸がいかに表示されるかを示します;
可能な値はsolid
とdots
です。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), xaxis = true, xaxis_type = solid)$
xaxis
, xaxis_width
, xaxis_color
も参照してください。
デフォルト値: 1
xaxis_width
はx軸の幅です。
その値は正数でなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), xaxis = true, xaxis_width = 3)$
xaxis
, xaxis_type
, xaxis_color
も参照してください。
デフォルト値: ""
(empty string)
オプションxlabel
、文字列は
x軸のラベルです。
デフォルトでは、ラベルは書かれません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(xlabel = "Time", explicit(exp(u),u,-2,2), ylabel = "Population")$
ylabel
とzlabel
も参照してください。
デフォルト値: auto
もしxrange
がauto
なら、
x座標の範囲は自動的に計算されます。
もしユーザーが
xに関して特定の区間が欲しいなら、
xrange=[-2, 3]
のように、Maximaリストとして与えられなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [-3,5], explicit(x^2,x,-1,1))$
yrange
とzrange
も参照してください。
デフォルト値: auto
もしxrange_secondary
がauto
なら、
二番目のx軸の範囲は自動的に計算されます。
もしユーザーが
二番目のx軸の特定した区間が欲しいなら、
xrange_secondary=[-2, 3]
のように、Maximaリストとして与えられなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
xrange
, yrange
, zrange
, yrange_secondary
も参照してください。
デフォルト値: auto
このグラフィックオプション制御は チックマークをx軸上に描く方法を制御します。
xtics
がシンボルautoにバインドされている時
チックマークは自動的に描かれます。
xtics
がシンボルnoneにバインドされている時
チックマークは描かれません。
xtics
が正の数にバインドされている時、
これは2つの連続するチックマークの間の距離になります。
xtics
が
形式[start,incr,end]
の長さ3のリストにバインドされている時、
チックマークは
start
からend
まで
長さincr
の間隔でプロットされます。
xtics
が
形式{n1, n2, ...}
の数の集合にバインドされている時、
チックマークは
値n1
, n2
, ...にプロットされます。
xtics
が
形式{["label1", n1], ["label2", n2], ...}
の対の集合にバインドされている時、
値n1
, n2
, ...に対応する
チックマークはそれぞれ、
"label1"
, "label2"
, ...にラベルされます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
チックをディセーブルします。
(%i1) load("draw")$ (%i2) draw2d(xtics = 'none, explicit(x^3,x,-1,1) )$
1/4単位毎のチック。
(%i1) load("draw")$ (%i2) draw2d(xtics = 1/4, explicit(x^3,x,-1,1) )$
-3/4から3/4まで 1/8のステップでチック。
(%i1) load("draw")$ (%i2) draw2d(xtics = [-3/4,1/8,3/4], explicit(x^3,x,-1,1) )$
点-1/2, -1/4, 3/4にチック。
(%i1) load("draw")$ (%i2) draw2d(xtics = {-1/2,-1/4,3/4}, explicit(x^3,x,-1,1) )$
ラベルされたチック。
(%i1) load("draw")$ (%i2) draw2d(xtics = {["High",0.75],["Medium",0],["Low",-0.75]}, explicit(x^3,x,-1,1) )$
ytics
, ztics
も参照してください。
デフォルト値: false
もしxtics_axis
がtrue
なら、
チックマークとそれらのラベルが
x軸に沿ってだけプロットされます。
もしfalse
なら、チックは境界上にプロットされます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: false
もしxtics_rotate
がtrue
なら、
x軸上のチックマークが90度回転されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: false
もしxtics_rotate_secondary
がtrue
なら、
補助的なx軸上のチックマークが90度回転されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: auto
このグラフィックオプションは、 二番目のx軸上にチックマークを描く方法を制御します。
完全な記述に関しては、xtics
を参照してください。
デフォルト値: false
もしxtics_secondary_axis
がtrue
なら、
チックマークとそれらのラベルは補助的なx軸に沿ってだけプロットされ、
もしfalse
なら、境界上にプロットされます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: 30
xu_grid
は
サンプル点のグリッドを構築するための一番目の変数
(陽でのx
、パラメトリック3d表面でのu
)の座標の数です。
このオプションは以下のグラフィックオブジェクトに影響を与えます:
gr3d
: explicit
とparametric_surface
.
例:
(%i1) load("draw")$ (%i2) draw3d(xu_grid = 10, yv_grid = 50, explicit(x^2+y^2,x,-3,3,y,-3,3) )$
yv_grid
も参照してください。
デフォルト値: ""
(empty string)
xy_file
は、
マウスでクリックし、’x’キーを叩いた後、座標が保存される
ファイルの名前です。
デフォルトでは、座標は保存されません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
デフォルト値: false
3Dシーンの中にxy平面を配置します。
xyplane
がfalse
の時、
xy平面は自動的に置かれます;
実数の時、xy平面はこのレベルでz軸と交わります。
このオプションは2Dシーンでは効果を持ちません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(xyplane = %e-2, explicit(x^2+y^2,x,-1,1,y,-1,1))$
デフォルト値: 10
y_voxel
は
3d暗黙の
オブジェクトで実装されたマーチングキューブアルゴリズム
で使われるy方向のボクセルの数です。
グラフィックオブジェクトregion
でも使われます。
デフォルト値: false
もしyaxis
がtrue
なら、y軸が描かれます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), yaxis = true, yaxis_color = blue)$
yaxis_width
, yaxis_type
, yaxis_color
も参照してください。
デフォルト値: "black"
yaxis_color
はy軸の色を指定します。
色がどのように定義されているか知るには
color
を参照してください。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), yaxis = true, yaxis_color = red)$
yaxis
, yaxis_width
, yaxis_type
も参照してください。
デフォルト値: false
もしyaxis_secondary
がtrue
なら、
関数値は二番目のy軸に関してプロットされるかもしれません。
二番目のy軸はシーンの右側に描かれます。
これは、2dプロットにだけ影響する局所的なグラフィックオプションであることに注意してください。
例:
(%i1) load("draw")$ (%i2) draw2d( explicit(sin(x),x,0,10), yaxis_secondary = true, ytics_secondary = true, color = blue, explicit(100*sin(x+0.1)+2,x,0,10));
yrange_secondary
, ytics_secondary
, ytics_rotate_secondary
, ytics_axis_secondary
も参照してください。
デフォルト値: dots
yaxis_type
はy軸がどのように表示されるか示します;
可能な値はsolid
とdots
です。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), yaxis = true, yaxis_type = solid)$
yaxis
, yaxis_width
, yaxis_color
も参照してください。
デフォルト値: 1
yaxis_width
はy軸の幅です。
その値は正の数でなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(x^3,x,-1,1), yaxis = true, yaxis_width = 3)$
yaxis
, yaxis_type
, yaxis_color
も参照してください。
デフォルト値: ""
(empty string)
オプションylabel
、文字列は
y軸のラベルです。
デフォルトでは、ラベルは書かれません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(xlabel = "Time", ylabel = "Population", explicit(exp(u),u,-2,2) )$
xlabel
とzlabel
も参照してください。
デフォルト値: auto
もしyrange
がauto
なら、
y座標の範囲は自動的に計算されます。
もしユーザーがyの特定の区間が欲しいなら、
yrange=[-2, 3]
のように、Maximaリストとして与えられなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d(yrange = [-2,3], explicit(x^2,x,-1,1), xrange = [-3,3])$
xrange
, yrange_secondary
, zrange
も参照してください。
デフォルト値: auto
もしyrange_secondary
がauto
なら、
二番目のy軸の範囲は自動的に計算されます。
もしユーザーが二番目のy軸の特定の区間が欲しいなら、
yrange_secondary=[-2, 3]
のように、Maximaリストとして与えられなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw2d( explicit(sin(x),x,0,10), yaxis_secondary = true, ytics_secondary = true, yrange = [-3, 3], yrange_secondary = [-20, 20], color = blue, explicit(100*sin(x+0.1)+2,x,0,10)) $
xrange
, yrange
, zrange
も参照してください。
デフォルト値: auto
このグラフィックオプションは、 y軸上にチックマークを描く方法を制御します。
完全な記述に関しては、xtics
を参照してください。
デフォルト値: false
もしytics_axis
がtrue
なら、
チックマークとそれらのラベルはy軸に沿ってだけプロットされ、
もしfalse
なら、境界上にプロットされます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: false
もしytics_rotate
がtrue
なら、
y軸上のチックマークが90度回転されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: false
もしytics_rotate_secondary
がtrue
なら、
補助的なy軸上のチックマークが90度回転されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: auto
このグラフィックオプションは、 二番目のy軸上にチックマークを描く方法を制御します。
完全な記述に関しては、xtics
を参照してください。
デフォルト値: false
もしytics_secondary_axis
がtrue
なら、
チックマークとそれらのラベルは補助的なy軸に沿ってだけプロットされ、
もしfalse
なら、境界上にプロットされます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: 30
yv_grid
は
サンプル点のグリッドを構築するための
二番目の変数(陽でのy
、パラメトリック3d表面でのv
)の座標の数です。
このオプションは以下のグラフィックオブジェクトに影響を与えます:
gr3d
: explicit
とparametric_surface
.
例:
(%i1) load("draw")$ (%i2) draw3d(xu_grid = 10, yv_grid = 50, explicit(x^2+y^2,x,-3,3,y,-3,3) )$
xu_grid
も参照してください。
デフォルト値: 10
z_voxel
は
3dimplicit
オブジェクトで実装されたマーチングキューブアルゴリズム
で使われるz方向のボクセルの数です。
デフォルト値: false
もしzaxis
がtrue
なら、3Dプロットでz軸が描かれます。
このオプションは2Dシーンでは効果を持ちません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1), zaxis = true, zaxis_type = solid, zaxis_color = blue)$
zaxis_width
, zaxis_type
, zaxis_color
も参照してください。
デフォルト値: "black"
zaxis_color
はz軸の色を指定します。
色がどのように定義されているか知るにはcolor
を参照してください。
このオプションは2Dシーンでは効果を持ちません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1), zaxis = true, zaxis_type = solid, zaxis_color = red)$
zaxis
, zaxis_width
, zaxis_type
も参照してください。
デフォルト値: dots
zaxis_type
はz軸がどのように表示されるか示します;
可能な値はsolid
とdots
です。
このオプションは2Dシーンでは効果を持ちません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1), zaxis = true, zaxis_type = solid)$
zaxis
, zaxis_width
, zaxis_color
も参照してください。
デフォルト値: 1
zaxis_width
はz軸の幅です。
その値は正の数でなければいけません。
このオプションは2Dシーンでは効果を持ちません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1), zaxis = true, zaxis_type = solid, zaxis_width = 3)$
zaxis
, zaxis_type
, zaxis_color
も参照してください。
デフォルト値: ""
(empty string)
オプションzlabel
文字列は
z軸のラベルです。
デフォルトでは、ラベルは書かれません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw3d(zlabel = "Z variable", ylabel = "Y variable", explicit(sin(x^2+y^2),x,-2,2,y,-2,2), xlabel = "X variable" )$
xlabel
とylabel
も参照してください。
デフォルト値: auto
もしzrange
がauto
なら、
z座標の範囲は自動的に計算されます。
もしユーザーが
zの特定の区間が欲しいなら、
zrange=[-2, 3]
のようにMaximaリストとして与えられなければいけません。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
例:
(%i1) load("draw")$ (%i2) draw3d(yrange = [-3,3], zrange = [-2,5], explicit(x^2+y^2,x,-1,1,y,-1,1), xrange = [-3,3])$
xrange
, yrange
も参照してください。
デフォルト値: auto
このグラフィックオプションは、 z軸上にチックマークを描く方法を制御します。
完全な記述に関しては、xtics
を参照してください。
デフォルト値: false
もしztics_secondary_axis
がtrue
なら、
チックマークとそれらのラベルは補助的なz軸に沿ってだけプロットされ、
もしfalse
なら、境界上にプロットされます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
デフォルト値: false
もしztics_rotate
がtrue
なら、
z軸上のチックマークが90度回転されます。
これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。
2D内に垂直バーを描画します。
2D
bars ([x1,h1,w1], [x2,h2,w2, ...])
は
値x1, x2, ...に中心を持ち、高さh1, h2, ...と幅w1, w2, ...を持つバーを描画します。
このオブジェクトは以下のgraphic optionsに影響されます: key
,
fill_color
, fill_density
, line_width
.
例:
(%i1) load("draw")$ (%i2) draw2d( key = "Group A", fill_color = blue, fill_density = 0.2, bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]), key = "Group B", fill_color = red, fill_density = 0.6, line_width = 4, bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]), xaxis = true);
円柱座標で定義された3D関数を描画します。
3D
cylindrical (radius, z, minz, maxz, azi,
minazi, maxazi)
は
minzからmaxzまでの値を取るzと
minaziからmaxaziまで値を取る方位角 aziを伴う
円柱座標で定義された関数radius(z,azi)
をプロットします。
このオブジェクトは以下のグラフィックオプションに影響されます:
xu_grid
,
yv_grid
, line_type
, key
and color
.
例:
(%i1) load("draw")$ (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$
3D空間に行列matを描画します。 x0からx0 + widthまでの横座標範囲と y0からy0 + heightまでの縦座標範囲で、 z値はmatから取られます。 要素a(1,1)は点(x0,y0+height)上に射影され、 a(1,n)は(x0+width,y0+height)上に射影され、 a(m,1)は(x0,y0)上に射影され、 a(m,n)は(x0+width,y0)上に射影されます。
このオブジェクトは以下のグラフィックオプションに影響されます: line_type
,
line_width
, key
, enhanced3d
, color
。
Maximaの古いバージョンでは、elevation_grid
はmesh
と呼ばれました。
mesh
も参照してください。
例:
(%i1) load("draw")$ (%i2) m: apply( matrix, makelist(makelist(random(10.0),k,1,30),i,1,20)) $ (%i3) draw3d( color = blue, elevation_grid(m,0,0,3,2), xlabel = "x", ylabel = "y", surface_hide = true);
2D内で楕円や円を描画します。
2D
ellipse (xc, yc, a, b, ang1, ang2)
は
[xc, yc]
を中心とし、水平と垂直半軸にそれぞれaとbを持ち、角度ang1から始まり、角度ang2に等しい振幅を持つ
楕円をプロットします。
このオブジェクトは以下のgraphic optionsに影響されます:
nticks
,
transparent
, fill_color
, border
, line_width
,
line_type
, key
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d(transparent = false, fill_color = red, color = gray30, transparent = false, line_width = 5, ellipse(0,6,3,2,270,-270), /* center (x,y), a, b, start & end in degrees */ transparent = true, color = blue, line_width = 3, ellipse(2.5,6,2,3,30,-90), xrange = [-3,6], yrange = [2,9] )$
オプションerror_type
の値に依存して、
水平、垂直もしくは両方のエラーバーと共に点を描きます。
2D
もしerror_type = x
なら、
errors
の引数は must be of the form
形式[x, y, xdelta]
か[x, y, xlow, xhigh]
でなければいけません。
もしerror_type = y
なら、
引数は形式[x, y, ydelta]
か[x, y, ylow, yhigh]
でなければいけません。
もしerror_type = xy
かerror_type = boxes
なら、
errors
の引数は
形式[x, y, xdelta, ydelta]
か[x, y, xlow, xhigh, ylow, yhigh]
でなければいけません。
error_type
も参照してください。
このオブジェクトは以下のグラフィックオブジェクトによって影響されます:
error_type
,
points_joined
, line_width
, key
, line_type
,
color
, fill_density
, xaxis_secondary
, yaxis_secondary
.
オプションfill_density
は、error_type=boxes
の時だけ有効です。
例:
水平エラーバー。
(%i1) load("draw")$ (%i2) draw2d( error_type = y, errors([[1,2,1], [3,5,3], [10,3,1], [17,6,2]]))$
垂直および水平エラーバー。
(%i1) load("draw")$ (%i2) draw2d( error_type = xy, points_joined = true, color = blue, errors([[1,2,1,2], [3,5,2,1], [10,3,1,1], [17,6,1/2,2]]));
2Dおよび3Dにて陽関数を描画します。
2D
explicit(fcn,var,minval,maxval)
は
minvalからmaxvalまで値を取る変数varを伴う
陽関数fcnをプロットします。
このオブジェクトは以下のgraphic optionsに影響されます:
nticks
,
adapt_depth
, line_width
, line_type
, key
,
filled_func
, fill_color
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d(line_width = 3, color = blue, explicit(x^2,x,-3,3) )$ (%i3) draw2d(fill_color = brown, filled_func = true, explicit(x^2,x,-3,3) )$
3D
explicit(fcn, var1, minval1, maxval1, var2,
minval2, maxval2)
は
minval1から maxval1まで値を取る変数 var1と
minval2から maxval2まで値を取る変数 var2を伴う
陽関数 fcnをプロットします。
このオブジェクトは以下のグラフィックオプションの影響を受けます: xu_grid
,
yv_grid
, line_type
, line_width
, key
, enhanced3d
, color
.
例:
(%i1) load("draw")$ (%i2) draw3d(key = "Gauss", color = "#a02c00", explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3), yv_grid = 10, color = blue, key = "Plane", explicit(x+y,x,-5,5,y,-5,5), surface_hide = true)$
埋められた関数に関してはfilled_func
も参照してください。
2Dにてイメージを描写します。
2D
image (im,x0,y0,width,height)
は
実平面上の
頂点(x0,y0)
から(x0+width,y0+height)
までの長方形領域に
イメージimをプロットします。
引数imは実数の行列、長さ3のベクトルの行列もしくはpictureオブジェクトでなければいけません。
もしimが実数の行列かlevels pictureオブジェクトなら、
ピクセル値は
-36から+36に広がる成分を持つ長さ3のベクトルである
グラフィックオプションpalette
に従って解釈されます;
それぞれの値はレベルをそれぞれ赤、緑、青色にマップする公式のインデックスです。
0: 0 1: 0.5 2: 1 3: x 4: x^2 5: x^3 6: x^4 7: sqrt(x) 8: sqrt(sqrt(x)) 9: sin(90x) 10: cos(90x) 11: |x-0.5| 12: (2x-1)^2 13: sin(180x) 14: |cos(180x)| 15: sin(360x) 16: cos(360x) 17: |sin(360x)| 18: |cos(360x)| 19: |sin(720x)| 20: |cos(720x)| 21: 3x 22: 3x-1 23: 3x-2 24: |3x-1| 25: |3x-2| 26: (3x-1)/2 27: (3x-2)/2 28: |(3x-1)/2| 29: |(3x-2)/2| 30: x/0.32-0.78125 31: 2*x-0.84 32: 4x;1;-2x+1.84;x/0.08-11.5 33: |2*x - 0.5| 34: 2*x 35: 2*x - 0.5 36: 2*x - 1
負の数は負の色成分を意味します。
palette = gray
とpalette = color
は
それぞれ、
palette = [3,3,3]
とpalette = [7,5,15]
へのショートカットです。
もしimが長さ3のベクトルの行列かrgb pictureオブジェクトなら、 それらは赤、緑、青の色成分として解釈されます。
例:
もしimが実数の行列なら、ピクセル値は
グラフィックオプションpalette
に従って解釈されます。
(%i1) load("draw")$ (%i2) im: apply( 'matrix, makelist(makelist(random(200),i,1,30),i,1,30))$ (%i3) /* palette = color, default */ draw2d(image(im,0,0,30,30))$ (%i4) draw2d(palette = gray, image(im,0,0,30,30))$ (%i5) draw2d(palette = [15,20,-4], colorbox=false, image(im,0,0,30,30))$
colorbox
も参照してください。
もしimが長さ3のベクトルの行列なら、 それらは赤、緑、青の色成分として解釈されます。
(%i1) load("draw")$ (%i2) im: apply( 'matrix, makelist( makelist([random(300), random(300), random(300)],i,1,30),i,1,30))$ (%i3) draw2d(image(im,0,0,30,30))$
パッケージdraw
は自動的にパッケージpicture
をロードします。
この例では、レベルピクチャオブジェクトは手動で組み立てられ、描画されます。
(%i1) load("draw")$ (%i2) im: make_level_picture([45,87,2,134,204,16],3,2); (%o2) picture(level, 3, 2, {Array: #(45 87 2 134 204 16)}) (%i3) /* default color palette */ draw2d(image(im,0,0,30,30))$ (%i4) /* gray palette */ draw2d(palette = gray, image(im,0,0,30,30))$
xpmファイルが読み込まれ、描写されます。
(%i1) load("draw")$ (%i2) im: read_xpm("myfile.xpm")$ (%i3) draw2d(image(im,0,0,10,7))$
make_level_picture
, make_rgb_picture
, read_xpm
も参照してください。
http://www.telefonica.net/web2/biomates/maxima/gpdraw/image
には更に丹念な例があります。
2Dおよび3Dにて陰関数を描画します。
2D
implicit(fcn,x,xmin,xmax,y,ymin,ymax)
は
xminからxmaxまでの値を取る変数xと
yminからymaxまでの値を取る変数yを伴う
fcnで定義された陰関数をプロットします。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
ip_grid
,
ip_grid_in
, line_width
, line_type
, key
,
color
.
例:
(%i1) load("draw")$ (%i2) draw2d(terminal = eps, grid = true, line_type = solid, key = "y^2=x^3-2*x+1", implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4), line_type = dots, key = "x^3+y^3 = 3*x*y^2-x-1", implicit(x^3+y^3 = 3*x*y^2-x-1, x,-4,4, y,-4,4), title = "Two implicit functions" )$
3D
implicit (fcn,x,xmin,xmax, y,ymin,ymax, z,zmin,zmax)
は
xminからxmaxまでの値を取る変数xと
yminからymaxまでの値を取る変数yと
zminからzmaxまでの値を取る変数zを伴う
fcnで定義された陰表面をプロットします。
このオブジェクトはマーチングキューブアルゴリズムを実装します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
x_voxel
,
y_voxel
, z_voxel
, line_width
, line_type
, key
, color
.
例:
(%i1) load("draw")$ (%i2) draw3d( color=blue, implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015, x,-1,1,y,-1.2,2.3,z,-1,1), surface_hide=true);
2Dと3D内でラベルを書きます。
色付けられたラベルはGnuplot 4.3でだけ機能します。
これはパッケージdraw
に関して既知のバグです。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
label_alignment
,
label_orientation
, color
.
2D
label([string,x,y])
は
点[x,y]
にstringを書きます。
例:
(%i1) load("draw")$ (%i2) draw2d(yrange = [0.1,1.4], color = "red", label(["Label in red",0,0.3]), color = "#0000ff", label(["Label in blue",0,0.6]), color = "light-blue", label(["Label in light-blue",0,0.9], ["Another light-blue",0,1.2]) )$
3D
label([string,x,y,z])
は、
点[x,y,z]
にstringを書きます。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3), color = red, label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]), color = blue, label(["DOWN 1",2,0,-3]) )$
3D空間内に行列matを描画します。 z値はmatから取られます。 横座標範囲はx0からx0 + widthまでを取り、 座標はy0からy0 + heightまでを取ります。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
line_type
,
line_width
, key
, enhanced3d
, color
.
このグラフィックオブジェクトは
true
とfalse
以外の値のenhanced3d
値を無視します。
例:
(%i1) load("draw")$ (%i2) m: apply( matrix, makelist(makelist(random(10.0),k,1,30),i,1,20)) $ (%i3) draw3d( color = blue, mesh(m,0,0,3,2), xlabel = "x", ylabel = "y", surface_hide = true);
2Dおよび3Dにてパラメトリック関数を描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
nticks
,
line_width
, line_type
, key
, color
and enhanced3d
.
2D
コマンド parametric(xfun, yfun, par, parmin,
parmax)
は
parminからparmaxまで値を取るパラメータparを伴う
パラメトリック関数[xfun, yfun]
をプロットします。
例:
(%i1) load("draw")$ (%i2) draw2d(explicit(exp(x),x,-1,3), color = red, key = "This is the parametric one!!", parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
3D
parametric (xfun, yfun, zfun, par, parmin,
parmax)
は
parminからparmaxまで値を取るパラメータparを伴う
パラメトリック曲線
[xfun, yfun, zfun]
をプロットします。
例:
(%i1) load("draw")$ (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3), color = royalblue, parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2), color = turquoise, line_width = 2, parametric(t^2,sin(t),2+t,t,0,2), surface_hide = true, title = "Surface & curves" )$
3Dにおいてパラメトリックな表面を描画します。
3D
コマンド parametric_surface (xfun, yfun, zfun,
par1, par1min, par1max, par2, par2min,
par2max)
は
par1minから par1maxまでを値として取るパラメータ par1と
par2minから par2maxまでを値として取るパラメータ par2を伴う
パラメトリックな表面 [xfun, yfun, zfun]
を
プロットします。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
xu_grid
,
yv_grid
, line_type
, line_width
, key
, enhanced3d
, color
.
例:
(%i1) load("draw")$ (%i2) draw3d(title = "Sea shell", xu_grid = 100, yv_grid = 25, view = [100,20], surface_hide = true, parametric_surface(0.5*u*cos(u)*(cos(v)+1), 0.5*u*sin(u)*(cos(v)+1), u*sin(v) - ((u+3)/8*%pi)^2 - 20, u, 0, 13*%pi, v, -%pi, %pi) )$
2Dや3Dの中で点を描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
point_size
,
point_type
, points_joined
, line_width
, key
,
line_type
, color
.
3Dモードでは、enhanced3d
の影響も受けます。
2D
points ([[x1,y1], [x2,y2],...])
や
points ([x1,x2,...], [y1,y2,...])
は
点[x1,y1]
, [x2,y2]
,などをプロットします。
もし横座標が与えられないなら、
それらは連続する正の整数に設定されます。
だから、
points ([y1,y2,...])
は、点[1,y1]
, [2,y2]
などを描画します。
もしmatrixが2列または2行行列なら、
points (matrix)
は関連した点を描画します。
もしmatrixが1列または1行行列なら、
横座標が自動的に割り当てられます。
もし1d_y_arrayが数の1Dのlisp配列なら、
points (1d_y_array)
は
横座標を連続する正の整数に設定してそれらをプロットします。
points (1d_x_array, 1d_y_array)
は
引数として渡された2つの配列から取られた座標を持つ点をプロットします。
もし2d_xy_arrayが2列の2D配列なら、
points (2d_xy_array)
は平面上に対応する点をプロットします。
例:
points
への2種類の引数、ペアのリストと分離した座標の2つのリスト。
(%i1) load("draw")$ (%i2) draw2d( key = "Small points", points(makelist([random(20),random(50)],k,1,10)), point_type = circle, point_size = 3, points_joined = true, key = "Great points", points(makelist(k,k,1,20),makelist(random(30),k,1,20)), point_type = filled_down_triangle, key = "Automatic abscissas", color = red, points([2,12,8]))$
衝撃を描画。
(%i1) load("draw")$ (%i2) draw2d( points_joined = impulses, line_width = 2, color = red, points(makelist([random(20),random(50)],k,1,10)))$
座標の配列。
(%i1) load("draw")$ (%i2) a: make_array (flonum, 100) $ (%i3) for i:0 thru 99 do a[i]: random(1.0) $ (%i4) draw2d(points(a)) $
分離した座標の2つの配列。
(%i1) load("draw")$ (%i2) x: make_array (flonum, 100) $ (%i3) y: make_array (fixnum, 100) $ (%i4) for i:0 thru 99 do ( x[i]: float(i/100), y[i]: random(10) ) $ (%i5) draw2d(points(x, y)) $
2列2D配列。
(%i1) load("draw")$ (%i2) xy: make_array(flonum, 100, 2) $ (%i3) for i:0 thru 99 do ( xy[i, 0]: float(i/100), xy[i, 1]: random(10) ) $ (%i4) draw2d(points(xy)) $
関数read_array
で埋められた配列の描画。
(%i1) load("draw")$ (%i2) a: make_array(flonum,100) $ (%i3) read_array (file_search ("pidigits.data"), a) $ (%i4) draw2d(points(a)) $
3D
points([[x1, y1, z1], [x2, y2, z2],
...])
や
points([x1, x2, ...], [y1, y2, ...],
[z1, z2, ...])
は
点[x1, y1, z1]
, [x2, y2, z2]
などをプロットします。
もし matrixが3列または3行行列なら、
points (matrix)
は関連した点を描画します。
引数がlisp配列の時、
points (1d_x_array, 1d_y_array, 1d_z_array)
は
3つの1D配列から座標を取ります。
もし2d_xyz_arrayが3列または3行を持つ2D配列なら、
points (2d_xyz_array)
は対応する点をプロットします。
例:
3次元のサンプル1つ、
(%i1) load("draw")$ (%i2) load ("numericalio")$ (%i3) s2 : read_matrix (file_search ("wind.data"))$ (%i4) draw3d(title = "Daily average wind speeds", point_size = 2, points(args(submatrix (s2, 4, 5))) )$
3次元のサンプル2つ、
(%i1) load("draw")$ (%i2) load ("numericalio")$ (%i3) s2 : read_matrix (file_search ("wind.data"))$ (%i4) draw3d( title = "Daily average wind speeds. Two data sets", point_size = 2, key = "Sample from stations 1, 2 and 3", points(args(submatrix (s2, 4, 5))), point_type = 4, key = "Sample from stations 1, 4 and 5", points(args(submatrix (s2, 2, 3))) )$
1次元配列、
(%i1) load("draw")$ (%i2) x: make_array (fixnum, 10) $ (%i3) y: make_array (fixnum, 10) $ (%i4) z: make_array (fixnum, 10) $ (%i5) for i:0 thru 9 do ( x[i]: random(10), y[i]: random(10), z[i]: random(10) ) $ (%i6) draw3d(points(x,y,z)) $
2次元色付け配列、
(%i1) load("draw")$ (%i2) xyz: make_array(fixnum, 10, 3) $ (%i3) for i:0 thru 9 do ( xyz[i, 0]: random(10), xyz[i, 1]: random(10), xyz[i, 2]: random(10) ) $ (%i4) draw3d( enhanced3d = true, points_joined = true, points(xyz)) $
ユーザーが陽に指定した色数。
(%i1) load("draw")$ (%i2) pts: makelist([t,t^2,cos(t)], t, 0, 15)$ (%i3) col_num: makelist(k, k, 1, length(pts))$ (%i4) draw3d( enhanced3d = ['part(col_num,k),k], point_size = 3, point_type = filled_circle, points(pts))$
極座標で定義された2D関数を描画します。
2D
polar (radius,ang,minang,maxang)
は
minangからmaxangまで値を取る変数angを伴う
極座標で定義された関数
radius(ang)
をプロットします。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
nticks
,
line_width
, line_type
, key
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d(user_preamble = "set grid polar", nticks = 200, xrange = [-5,5], yrange = [-5,5], color = blue, line_width = 3, title = "Hyperbolic Spiral", polar(10/theta,theta,1,10*%pi) )$
2D内でポリゴンを描画します。
2D
コマンド polygon ([[x1, y1], [x2, y2],...])
や
polygon ([x1, x2,...], [y1, y2,...])
は
頂点[x1, y1]
, [x2, y2]
などを持つポリゴンを
平面上にプロットします。
このオブジェクトは以下の
グラフィックオプションの影響を受けます:
transparent
,
fill_color
, border
, line_width
, key
,
line_type
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d(color = "#e245f0", line_width = 8, polygon([[3,2],[7,2],[5,5]]), border = false, fill_color = yellow, polygon([[5,2],[9,2],[7,5]]) )$
四辺形を描画します。
2D
quadrilateral ([x1, y1], [x2, y2],
[x3, y3], [x4, y4])
は
頂点[x1, y1]
, [x2, y2]
,
[x3, y3]
, [x4, y4]
を持つ四辺形を描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
transparent
, fill_color
, border
, line_width
,
key
, xaxis_secondary
, yaxis_secondary
, line_type
,
transform
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d( quadrilateral([1,1],[2,2],[3,-1],[2,-2]))$
3D
quadrilateral([x1, y1, z1], [x2, y2,
z2], [x3, y3, z3], [x4, y4, z4])
は
頂点[x1, y1, z1]
, [x2, y2, z2]
,
[x3, y3, z3]
, [x4, y4, z4]
を持つ
四辺形を描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます: line_type
,
line_width
, color
, key
, enhanced3d
, transform
.
2D内で長方形を描画します。
2D
rectangle ([x1,y1], [x2,y2])
は、
対角頂点
[x1,y1]
と[x2,y2]
を持つ長方形を描画します。
このオブジェクトは以下の
グラフィックオプションの影響を受けます: transparent
,
fill_color
, border
, line_width
, key
,
line_type
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d(fill_color = red, line_width = 6, line_type = dots, transparent = false, fill_color = blue, rectangle([-2,-2],[8,-1]), /* opposite vertices */ transparent = true, line_type = solid, line_width = 1, rectangle([9,4],[2,-1.5]), xrange = [-3,10], yrange = [-3,4.5] )$
平面上に不等式で定義された領域を描画します。
2D
exprは不等式とブーリアン演算子and
, or
, not
で形成された式です。
領域は
[minval1, maxval1]と[minval2, maxval2]で
定義された長方形で区切られています。
このオブジェクトは以下のグラフィックオプションの影響を受けます: fill_color
,
key
, x_voxel
, y_voxel
.
例:
(%i1) load("draw")$ (%i2) draw2d( x_voxel = 30, y_voxel = 30, region(x^2+y^2<1 and x^2+y^2 > 1/2, x, -1.5, 1.5, y, -1.5, 1.5));
球座標で定義された3D関数を描画します。
3D
spherical(radius, azi, minazi, maxazi, zen,
minzen, maxzen)
は
minaziから maxaziまで値を取る 方位角 aziと
minzenから maxzenまで値を取る 天頂角 zenを伴う
球座標で定義された関数 radius(azi, zen)
を描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
xu_grid
,
yv_grid
, line_type
, key
, color
.
例:
(%i1) load("draw")$ (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$
三角形を描画します。
2D
triangle ([x1,y1], [x2,y2], [x3,y3])
は、頂点[x1,y1]
, [x2,y2]
, [x3,y3]
を持つ三角形を描画します。
このオブジェクトは、
以下のグラフィックオプションに影響されます:
transparent
, fill_color
, border
, line_width
,
key
, xaxis_secondary
, yaxis_secondary
, line_type
,
transform
, color
.
例:
(%i1) load("draw")$ (%i2) draw2d( triangle([1,1],[2,2],[3,-1]))$
3D
triangle ([x1,y1,z1], [x2,y2,z2], [x3,y3,z3])
は
頂点[x1,y1,z1]
, [x2,y2,z2]
,
[x3,y3,z3]
を持つ三角形を描画します。
このオブジェクトは以下のグラフィックオプションに影響されます:
line_type
, line_width
, color
, key
, enhanced3d
, transform
.
3Dにおいて 径が変化する管を描画します。
3D
[xfun,yfun,zfun]
は
pminからpmaxまで値を取るパラメータpを伴う
パラメトリックな曲線です。
パラメトリックな曲線上に中心を持ち、曲線と垂直な半径rfunの円が置かれます。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
xu_grid
,
yv_grid
, line_type
, line_width
, key
, enhanced3d
,
color
, tube_extremes
.
例:
(%i1) load("draw")$ (%i2) draw3d( enhanced3d = true, xu_grid = 50, tube(cos(a), a, 0, cos(a/10)^2, a, 0, 4*%pi) )$
2Dおよび3D内でベクトルを描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
head_both
,
head_length
, head_angle
, head_type
, line_width
,
line_type
, key
, color
.
2D
vector([x,y], [dx,dy])
は
[x,y]
を原点とするベクトル[dx,dy]
を
プロットします。
例:
(%i1) load("draw")$ (%i2) draw2d(xrange = [0,12], yrange = [0,10], head_length = 1, vector([0,1],[5,5]), /* default type */ head_type = 'empty, vector([3,1],[5,5]), head_both = true, head_type = 'nofilled, line_type = dots, vector([6,1],[5,5]))$
3D
vector([x,y,z], [dx,dy,dz])
は
[x,y,z]
を原点とする
ベクトル[dx,dy,dz]
をプロットします。
例:
(%i1) load("draw")$ (%i2) draw3d(color = cyan, vector([0,0,0],[1,1,1]/sqrt(3)), vector([0,0,0],[1,-1,0]/sqrt(2)), vector([0,0,0],[1,1,-2]/sqrt(6)) )$
Next: Functions and Variables for worldmap, Previous: Functions and Variables for draw, Up: draw [Contents][Index]
ピクチャからピクセルを返します。
座標xとyは
0からそれぞれwidth-1
とheight-1
までの範囲を取ります。
レベルpictureオブジェクトを返します。
make_level_picture (data)
は
行列dataから
pictureオブジェクトを作ります。
make_level_picture (data,width,height)
は
数のリストからオブジェクトを作ります;
この場合、widthとheight両方を与えなければいけません。
返されたpictureオブジェクトは以下の4つの部分を含みます:
level
例:
行列からのレベルピクチャ。
(%i1) load("draw")$ (%i2) make_level_picture(matrix([3,2,5],[7,-9,3000])); (%o2) picture(level, 3, 2, {Array: #(3 2 5 7 0 255)})
数値リストからのレベルピクチャ
(%i1) load("draw")$ (%i2) make_level_picture([-2,0,54,%pi],2,2); (%o2) picture(level, 2, 2, {Array: #(0 0 54 3)})
rgb色付けされたpictureオブジェクトを返します。 3つ引数すべては赤、緑、青のレベルを持つレベルピクチャでなければいけません;
返されたpictureオブジェクトは以下の4つの部分を含みます:
rgb
例:
(%i1) load("draw")$ (%i2) red: make_level_picture(matrix([3,2],[7,260])); (%o2) picture(level, 2, 2, {Array: #(3 2 7 255)}) (%i3) green: make_level_picture(matrix([54,23],[73,-9])); (%o3) picture(level, 2, 2, {Array: #(54 23 73 0)}) (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698])); (%o4) picture(level, 2, 2, {Array: #(123 82 45 33)}) (%i5) make_rgb_picture(red,green,blue); (%o5) picture(rgb, 2, 2, {Array: #(3 54 123 2 23 82 7 73 45 255 0 33)})
(levelまたはrgb)ピクチャの反転を返します。
等しいピクチャの場合true
を、そうでなければfalse
を返します。
もし引数が適正なイメージなら
true
を、そうでなければfalse
を返します。
xpm形式のファイルを読み、ピクチャオブジェクトを返します。
rgbピクチャを 赤、緑、青チャンネルを平均することでlevelの1つに変換します。
もし引数colorがred
, green
またはblue
なら、
関数take_channel
は
ピクチャimの対応する色チャンネルを返します。
例:
(%i1) load("draw")$ (%i2) red: make_level_picture(matrix([3,2],[7,260])); (%o2) picture(level, 2, 2, {Array: #(3 2 7 255)}) (%i3) green: make_level_picture(matrix([54,23],[73,-9])); (%o3) picture(level, 2, 2, {Array: #(54 23 73 0)}) (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698])); (%o4) picture(level, 2, 2, {Array: #(123 82 45 33)}) (%i5) make_rgb_picture(red,green,blue); (%o5) picture(rgb, 2, 2, {Array: #(3 54 123 2 23 82 7 73 45 255 0 33)}) (%i6) take_channel(%,'green); /* simple quote!!! */ (%o6) picture(level, 2, 2, {Array: #(54 23 73 0)})
Previous: Functions and Variables for pictures, Up: draw [Contents][Index]
このパッケージは自動的にパッケージdraw
をロードします。
デフォルト値: false
boundaries_array
は
グラフィックオプションgeomap
が境界座標を探すところです。
Each component of
boundaries_array
のそれぞれの成分は
浮動小数点量の配列であり、
多角形のセグメントかマップ境界の座標です。
geomap
も参照してください。
その数(boundaries_array
座標)でラベルされた
多角形セグメント(境界)のリストを描画します。
これは新しい地理的なものを作る時に非常に役立ちます。
例:
boundaries_array
内の成分数で境界をラベルされたヨーロッパの地図
(%i1) load("worldmap")$ (%i2) european_borders: region_boundaries(-31.81,74.92,49.84,32.06)$ (%i3) numbered_boundaries(european_borders)$
色付けられた大陸や国のリストを描画するのに必要なポリゴンを作ります。
例:
(%i1) load("worldmap")$ (%i2) /* A continent */ make_poly_continent(Africa)$ (%i3) apply(draw2d, %)$ (%i4) /* A list of countries */ make_poly_continent([Germany,Denmark,Poland])$ (%i5) apply(draw2d, %)$
色付けられた国を描画するのに必要なポリゴンを作ります。 もし島が存在するなら、1つの国はただ1つ以上のポリゴンで定義され得ます。
例:
(%i1) load("worldmap")$ (%i2) make_poly_country(India)$ (%i3) apply(draw2d, %)$
境界添字からpolygon
オブジェクトを返します。
引数nlistはboundaries_array
の成分のリストです。
例:
ブータンは境界番号171, 173, 1143で定義されます。
だから、make_polygon([171,173,1143])
は
appends arrays of coordinates
座標boundaries_array[171]
, boundaries_array[173]
,
boundaries_array[1143]
の配列を付加し、
draw
でプロットされるのに適したpolygon
オブジェクトを返します.
エラーメッセージを避けるには、
任意の連続する配列が端で共通の2つの座標を持つという意味で配列は互換性がなければいけません。
この例では、
boundaries_array[171]
の最初の2つの成分は
boundaries_array[173]
の最後の2つの座標と等しく、
boundaries_array[173]
の最初の2つは
boundaries_array[1143]
の最初の2つに等しいです;
結論として、境界番号171, 173, 1143は (この順で)互換性があり、色付けられたポリゴンは描画できます。
(%i1) load("worldmap")$ (%i2) Bhutan; (%o2) [[171, 173, 1143]] (%i3) boundaries_array[171]; (%o3) {Array: #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221 88.917877 27.321039)} (%i4) boundaries_array[173]; (%o4) {Array: #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499 91.631348 27.536381 91.765533 27.45694 91.775253 27.4161 92.007751 27.471939 92.11441 27.28583 92.015259 27.168051 92.015533 27.08083 92.083313 27.02277 92.112183 26.920271 92.069977 26.86194 91.997192 26.85194 91.915253 26.893881 91.916924 26.85416 91.8358 26.863331 91.712479 26.799999 91.542191 26.80444 91.492188 26.87472 91.418854 26.873329 91.371353 26.800831 91.307457 26.778049 90.682457 26.77417 90.392197 26.903601 90.344131 26.894159 90.143044 26.75333 89.98996 26.73583 89.841919 26.70138 89.618301 26.72694 89.636093 26.771111 89.360786 26.859989 89.22081 26.81472 89.110237 26.829161 88.921631 26.98777 88.873016 26.95499 88.867737 27.080549 88.843307 27.108601 88.750549 27.14727)} (%i5) boundaries_array[1143]; (%o5) {Array: #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805 91.338028 28.05249 91.314972 28.096661 91.108856 27.971109 91.015808 27.97777 90.896927 28.05055 90.382462 28.07972 90.396088 28.23555 90.366074 28.257771 89.996353 28.32333 89.83165 28.24888 89.58609 28.139999 89.35997 27.87166 89.225517 27.795 89.125793 27.56749 88.971077 27.47361 88.917877 27.321039)} (%i6) Bhutan_polygon: make_polygon([171,173,1143])$ (%i7) draw2d(Bhutan_polygon)$
頂点(x1,y1) -左上- と(x2,y2) -右下-の長方形に完全に含まれる
グローバル変数boundaries_array
の多角形セグメント検出します。
例:
南イタリアをプロットするためのセグメントの数を返します。
(%i1) load("worldmap")$ (%i2) region_boundaries(10.4,41.5,20.7,35.4); (%o2) [1846, 1863, 1864, 1881, 1888, 1894] (%i3) draw2d(geomap(%))$
頂点(x1,y1) -左上- と(x2,y2) -右下-で定義された長方形に少なくとも1つ頂点を含まれる
グローバル変数boundaries_array
の多角形セグメント検出します。
多角形セグメント検出します。
例:
(%i1) load("worldmap")$ (%i2) region_boundaries_plus(10.4,41.5,20.7,35.4); (%o2) [1060, 1062, 1076, 1835, 1839, 1844, 1846, 1858, 1861, 1863, 1864, 1871, 1881, 1888, 1894, 1897] (%i3) draw2d(geomap(%))$
2Dと3Dに関して地図を描画します。
2D
この関数はグローバル変数boundaries_array
と一緒に機能します。
引数numlistは
数や数のリストを含むリストです。
これらすべての数は、
グローバル配列boundaries_array
の成分を表す
0以上の整数でなければいけません。
Each component of
boundaries_array
のそれぞれの成分は
浮動小数点量の配列であり、多角形セグメントやマップ境界の座標です。
geomap (numlist)
は
引数を平坦化し、boundaries_array
の中に関連した境界を描画します。
このオブジェクトは以下のグラフィックオプションの影響を受けます:
line_width
, line_type
, color
.
例:
手で定義された簡単な地図:
(%i1) load("draw")$ (%i2) /* Vertices of boundary #0: {(1,1),(2,5),(4,3)} */ ( bnd0: make_array(flonum,6), bnd0[0]:1.0, bnd0[1]:1.0, bnd0[2]:2.0, bnd0[3]:5.0, bnd0[4]:4.0, bnd0[5]:3.0 )$ (%i3) /* Vertices of boundary #1: {(4,3),(5,4),(6,4),(5,1)} */ ( bnd1: make_array(flonum,8), bnd1[0]:4.0, bnd1[1]:3.0, bnd1[2]:5.0, bnd1[3]:4.0, bnd1[4]:6.0, bnd1[5]:4.0, bnd1[6]:5.0, bnd1[7]:1.0)$ (%i4) /* Vertices of boundary #2: {(5,1), (3,0), (1,1)} */ ( bnd2: make_array(flonum,6), bnd2[0]:5.0, bnd2[1]:1.0, bnd2[2]:3.0, bnd2[3]:0.0, bnd2[4]:1.0, bnd2[5]:1.0 )$ (%i5) /* Vertices of boundary #3: {(1,1), (4,3)} */ ( bnd3: make_array(flonum,4), bnd3[0]:1.0, bnd3[1]:1.0, bnd3[2]:4.0, bnd3[3]:3.0)$ (%i6) /* Vertices of boundary #4: {(4,3), (5,1)} */ ( bnd4: make_array(flonum,4), bnd4[0]:4.0, bnd4[1]:3.0, bnd4[2]:5.0, bnd4[3]:1.0)$ (%i7) /* Pack all together in boundaries_array */ ( boundaries_array: make_array(any,5), boundaries_array[0]: bnd0, boundaries_array[1]: bnd1, boundaries_array[2]: bnd2, boundaries_array[3]: bnd3, boundaries_array[4]: bnd4 )$ (%i8) draw2d(geomap([0,1,2,3,4]))$
補助バッケージ worldmap
は
グローバル変数 boundaries_array
を
(経度、緯度)座標で
実世界境界に設定します。
これらのデータはパブリックドメインであり、
http://www-cger.nies.go.jp/grid-e/gridtxt/grid19.html
に由来するものです。
パッケージworldmap
は、国、大陸、海岸線の境界も
boundaries_array
の必要な成分を持つリストとして、
定義します。
(更に知るにはファイルshare/draw/worldmap.mac
を参照してください)
パッケージdraw
は自動的にworldmap
をロードしません。
(%i1) load("worldmap")$ (%i2) c1: gr2d(geomap(Canada,United_States, Mexico,Cuba))$ (%i3) c2: gr2d(geomap(Africa))$ (%i4) c3: gr2d(geomap(Oceania,China,Japan))$ (%i5) c4: gr2d(geomap(France,Portugal,Spain, Morocco,Western_Sahara))$ (%i6) draw(columns = 2, c1,c2,c3,c4)$
パッケージworldmap
は
国をポリゴンとしてプロットする時にも役に立ちます。
この場合、グラフィックオブジェクトgeomap
は
もはや必要でなく、代わりにpolygon
オブジェクトが使われます。
配列ではなくリストが現在使われているので、
地図レンダリングはより遅いでしょう。
以下のコードを理解するためには、
make_poly_country
とmake_poly_continent
も
参照してください。
(%i1) load("worldmap")$ (%i2) mymap: append( [color = white], /* borders are white */ [fill_color = red], make_poly_country(Bolivia), [fill_color = cyan], make_poly_country(Paraguay), [fill_color = green], make_poly_country(Colombia), [fill_color = blue], make_poly_country(Chile), [fill_color = "#23ab0f"], make_poly_country(Brazil), [fill_color = goldenrod], make_poly_country(Argentina), [fill_color = "midnight-blue"], make_poly_country(Uruguay))$ (%i3) apply(draw2d, mymap)$
3D
geomap (numlist)
は地図境界を
中心が(0,0,0)で半径1の球上に射影します。
geomap (numlist,3Dprojection)
を使うことで、
球や射影タイプを変えることが可能です。
利用可能な3D射影:
[spherical_projection,x,y,z,r]
:
地図境界を
中心(x,y,z)、半径rの球上に
射影します。
(%i1) load("worldmap")$ (%i2) draw3d(geomap(Australia), /* default projection */ geomap(Australia, [spherical_projection,2,2,2,3]))$
[cylindrical_projection,x,y,z,r,rc]
:
球地図境界を
中心(x,y,z)の半径rの地球の極を通る軸を持ち
半径rcの円柱に再射影します。
(%i1) load("worldmap")$ (%i2) draw3d(geomap([America_coastlines,Eurasia_coastlines], [cylindrical_projection,2,2,2,3,4]))$
[conic_projection,x,y,z,r,alpha]
:
球地図境界を
中心(x,y,z)の半径rの地球の極を通る軸を持ち
角度alphaの円錐上に
再射影します。
北円錐と南円錐両方が球に接触します。
(%i1) load("worldmap")$ (%i2) draw3d(geomap(World_coastlines, [conic_projection,0,0,0,1,90]))$
更に丹念な例を見るには、 http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap も参照してください。