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

52. draw

,


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

52.1 Introduction to draw

drawは Maxima-Gnuplotと Maxima-vtkのインターフェイスです。

Maximaレベルで使われる3つの主な関数があります: draw2d, draw3d, draw

このパッケージのさらに磨きかけられた例のために以下のリンクに従ってください:

http://riotorto.users.sourceforge.net/gnuplot
http://riotorto.users.sourceforge.net/vtk

このプログラムを走らせるには Gnuplot 4.2以上が必要です。

Categories:  Plotting · Share packages · Package draw


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

52.2 Functions and Variables for draw


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

52.2.1 Scenes

シーン構成子: gr2d (graphic option, ..., graphic object, ...)

関数 gr2dは 2Dシーンを記述するオブジェクトを作ります。 引数はグラフィックオプショングラフィックオブジェクト、または、 グラフィックオプションとオブジェクト両方を含むリストです。 このシーンは順に解釈されます: グラフィックオプションはその右に置かれたそれらのグラフィックオブジェクトに影響します。 いくつかのグラフィックオプションはシーンのグローバルな外観に影響します。

以下は2次元のシーンで利用可能なグラフィックオブジェクトのリストです: bars, ellipse, explicit, image, implicit, label, parametric, points, polar, polygon, quadrilateral, rectangle, triangle, vector, geomap (パッケージworldmapで定義されるもの)。

drawdraw2dも参照してください。

 
(%i1) load("draw");
(%o1)     /maxima/share/draw/draw.lisp
(%i2) draw(
    gr2d(
        key="sin (x)",grid=[2,2],
        explicit(
            sin(x),
            x,0,2*%pi
        )
    ),
    gr2d(
        key="cos (x)",grid=[2,2],
        explicit(
            cos(x),
            x,0,2*%pi
        )
    )
 );
(%o2)           [gr2d(explicit), gr2d(explicit)]

figures/draw_scene

Categories:  Package draw

シーン構成子: gr3d (graphic option, ..., graphic object, ...)

関数 gr3dは 3dシーンを記述するオブジェクトを作ります。 引数はグラフィックオプショングラフィックオブジェクト、または グラフィックオプションとオブジェクト両方を含むリストです。 このシーンは順に解釈されます: グラフィックオプションはその右に置かれたそれらの グラフィックオブジェクトに影響します。 いくつかのグラフィックオプションはシーンのグローバルな外観に影響します。

以下は3次元のシーンで利用可能なグラフィックオブジェクトのリストです: cylindrical, elevation_grid, explicit, implicit, label, mesh, parametric,
parametric_surface, points, quadrilateral, spherical, triangle, tube,
vector, geomap (パッケージ worldmapで定義されるもの)。

drawdraw3dも参照してください。

Categories:  Package draw


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

52.2.2 Functions

関数: draw (gr2d, ..., gr3d, ..., options, ...)

一連のシーンをプロットします; 引数は gr2dgr3dのオブジェクトといくつかのオプションです。 デフォルトでは、1列の中にシーンを一緒に配置します。

関数 drawは以下のグローバルオプションを受け付けます: terminal, columns, dimensions, file_name, delay.

関数 draw2ddraw3dは それぞれ、2次元と3次元に関して、1つのシーンだけが要求される時に使われるショートカットです。

gr2dgr3dも参照してください。

例:

 
(%i1) scene1: gr2d(title="Ellipse",
                   nticks=30,
                   parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
(%i2) scene2: gr2d(title="Triangle",
                   polygon([4,5,7],[6,4,2]))$
(%i3) draw(scene1, scene2, columns = 2)$

The two draw sentences are equivalent:

 
(%i1) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)));
(%o1)                          [gr3d(explicit)]
(%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1));
(%o2)                          [gr3d(explicit)]

アニメーティド gifファイル:

 
(%i1) 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
(%o1)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

figures/draw_equiv

gr2d, gr3d, draw2d, draw3dも参照してください。

Categories:  Package draw · File output

関数: draw2d (option, graphic_object, ...)

この関数は draw(gr2d(options, ..., graphic_object, ...)). のショートカットです。

2d特化のシーンをプロットするのに使うことができます。

この関数を利用するには、最初に load(draw)と書いてください。

drawgr2dも参照してください。

Categories:  Package draw · File output

関数: draw3d (option, graphic_object, ...)

この関数は draw(gr3d(options, ..., graphic_object, ...)) のショートカットです。

3d特化のシーンをプロットするのに使うことができます。

この関数を利用するには、最初に load(draw)と書いてください。

drawgr3dも参照してください。

Categories:  Package draw · File output

関数: drawf_ile (graphic option, ..., graphic object, ...)

現在のプロットをファイルに保存します。 受け付けられるグラフィックオプションは以下です: terminal, dimensions, file_name

例:

 
(%i1) /* screen plot */
      draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)))$
(%i2) /* same plot in eps format */
      draw_file(terminal  = eps,
                dimensions = [5,5]) $

Categories:  Package draw · File output

関数: multiplot_mode (term)

この関数を使うと、 Maximaを端末 termで 1ウィンドウマルチプロットモードとして動作させることができます; この関数が受け付ける引数は、screen, wxt, aquaterm, noneです。

マルチプロットモードがイネーブルの時、 drawへのそれぞれのコールは、 同じウィンドウに以前のものを消すことなく新しいプロットを送ります。 マルチモードをディセーブルにするには、 multiplot_mode(none)を書いてください。

マルチプロットモードがイネーブルの時、グローバルオプション terminalはブロックされます。 別の端末に変更する前に、この機能中のモードをディセーブルしなければいけません。

この特長は Windowsプラットフォームでは機能しません。

例:

 
(%i1) set_draw_defaults(
         xrange = [-1,1],
         yrange = [-1,1],
         grid   = true,
         title  = "Step by step plot" )$
(%i2) multiplot_mode(screen)$
(%i3) draw2d(color=blue,  explicit(x^2,x,-1,1))$
(%i4) draw2d(color=red,   explicit(x^3,x,-1,1))$
(%i5) draw2d(color=brown, explicit(x^4,x,-1,1))$
(%i6) multiplot_mode(none)$

figures/draw_multiplot

Categories:  Package draw · File output

関数: set_draw_defaults (graphic option, ..., graphic object, ...)

ユーザーグラフィックオプションを設定します。 この関数は 共通のグラフィックスオプションで一連のグラフィックスをプロットするのに役に立ちます。 引数なしにこの関数を呼ぶと、ユーザーデフォルトを取り除きます。

例:

 
(%i1) set_draw_defaults(
         xrange = [-10,10],
         yrange = [-2, 2],
         color  = blue,
         grid   = true)$
(%i2) /* plot with user defaults */
      draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
(%i3) set_draw_defaults()$
(%i4) /* plot with standard defaults */
      draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$

Categories:  Package draw


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

52.2.3 Graphic options

グラフィックオプション: adapt_depth

デフォルト値: 10

adapt_depthは適応プロットルーチンが使う分割の最大数です。

このオプションは 2d explicit関数に対してだけ有効です。

nticksも参照してください。

Categories:  Package draw

グラフィックオプション: allocation

デフォルト値: false

オプション allocationを使うと、出力ウィンドウの中に自在にシーンを置くことが可能です; これはマルチプロットで重要です。 falseの時、シーンは、オプション columnsに割り当てられた値に従って自動的に配置されます。 他の場合には allocationは二組の数のリストに設定しなければいけません; 一番目はシーンの左下隅の位置に対応し、 二番目のペアはプロットの幅と高さを与えます。 すべての数字は0から1の間の相対座標で与えなければいけません。

例:

グラフィックスの配置に関して。

 
(%i1) draw(
        gr2d(
          explicit(x^2,x,-1,1)),
        gr2d(
          allocation = [[1/4, 1/4],[1/2, 1/2]],
          explicit(x^3,x,-1,1),
          grid = true) ) $

figures/draw_allocation

選択された次元を持つマルチプロット。

 
(%i1) draw(
        terminal = wxt,
        gr2d(
          grid=[5,5],
          allocation = [[0, 0],[1, 1/4]],
          explicit(x^2,x,-1,1)),
        gr3d(
          allocation = [[0, 1/4],[1, 3/4]],
          explicit(x^2+y^2,x,-1,1,y,-1,1) ))$

figures/draw_allocation2

オプション columnsも参照して下さい。

Categories:  Package draw

グラフィックオプション: axis_3d

デフォルト値: true

もし axis_3dtrueなら、 x, y z軸が3dシーンで表示されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw3d(axis_3d = false,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$

figures/draw_axis3d

2dでの軸に関しては、 axis_bottom, axis_left, axis_top, axis_rightも参照してください。

Categories:  Package draw

グラフィックオプション: axis_bottom

デフォルト値: true

もし axis_bottomtrueなら、底の軸は 2dシーンで表示されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(axis_bottom = false,
             explicit(x^3,x,-1,1))$

figures/draw_axis_bottom

axis_left, axis_top, axis_right, axis_3dも参照してください。

Categories:  Package draw

グラフィックオプション: axis_left

デフォルト値: true

もし axis_lefttrueなら、左の軸が 2dシーンで表示されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(axis_left = false,
             explicit(x^3,x,-1,1))$

axis_bottom, axis_top, axis_right, axis_3dも参照してください。

Categories:  Package draw

グラフィックオプション: axis_right

デフォルト値: true

もし axis_righttrueなら、 2dシーンで右軸が表示されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(axis_right = false,
             explicit(x^3,x,-1,1))$

axis_bottom, axis_left, axis_top, axis_3dも参照してください。

Categories:  Package draw

グラフィックオプション: axis_top

デフォルト値: true

もし axis_toptrueなら、上部の軸が 2dシーンで表示されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(axis_top = false,
             explicit(x^3,x,-1,1))$

axis_bottom, axis_left, axis_right, axis_3dも参照してください。

Categories:  Package draw

グラフィックオプション: background_color

デフォルト値: white

端末の背景色を設定します。デフォルト背景色は白です。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

このオプションは端末 epslatexepslatex_standaloneと一緒には機能しません。

colorも参照してください。

Categories:  Package draw

グラフィックオプション: border

デフォルト値: true

もし bordertrueなら、 ポリゴンの境界は line_typeline_widthに従って塗られます。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) 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]]) )$

figures/draw_border

Categories:  Package draw

グラフィックオプション: capping

デフォルト値: [false, false]

グラフィックオブジェクト tubeの極値が閉か開かを示す 2つの可能な値 truefalseのリスト。 デフォルトでは極値は開です。

設定 capping = falsecapping = [false, false]と同値で、 capping = truecapping = [true, true]と同値です。

例:

 
(%i1) draw3d(
        capping = [false, true],
        tube(0, 0, a, 1,
             a, 0, 8) )$

figures/draw_tube_extremes

Categories:  Package draw

グラフィックオプション: cbrange

デフォルト値: auto

もし cbrangeautoなら enhanced3dfalseでない時 色付けられる値の範囲は自動的に計算されます。 カラー範囲外の値は、最も近い端の色を使います。

enhanced3dcolorboxfalseの時、オプション cbrangeは効果を持ちません。

もしユーザーが色付けられた値の特定の区間が欲しいなら、 cbrange=[-2, 3]のように Maximaリストとして与えられなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw3d (
        enhanced3d     = true,
        color          = green,
        cbrange = [-3,10],
        explicit(x^2+y^2, x,-2,2,y,-2,2)) $

figures/draw_cbrange

enhanced3d, colorbox, cbticsも参照してください。

Categories:  Package draw

グラフィックオプション: cbtics

デフォルト値: auto

このグラフィックオプションは、オプション enhanced3dfalseでない時、カラーボックス上にチックマークを描く方法を制御します。

enhanced3dcolorboxfalseの時、 オプション cbticsは効果を持ちません。

完全な記述に関しては、xticsを参照してください。

例:

 
(%i1) 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)) $

figures/draw_cbtics

enhanced3d, colorbox, cbrangeも参照してください。

Categories:  Package draw

グラフィックオプション: color

デフォルト値: "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) 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,
             explicit(1.5 + x^2,x,-1,1),
             color = "#23ab0f",
             label(["This is a label",0,1.2])  )$

figures/draw_color

fill_colorも参照してください。

Categories:  Package draw

グラフィックオプション: colorbox

デフォルト値: true

もし colorboxtrueなら、 ラベルなしの色スケールが image 2Dオブジェクトか色付けされた 3dオブジェクトと一緒に描かれます。 もし colorboxfalseなら、色スケールは表示されません。 もし colorboxが文字列なら、ラベル付き色スケールを描きます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) im: apply('matrix,
                 makelist(makelist(random(200),i,1,30),i,1,30))$
(%i2) draw(
          gr2d(image(im,0,0,30,30)),
          gr2d(colorbox = false, image(im,0,0,30,30))
      )$

figures/draw_colorbox 色スケールと3D色付けオブジェクト。

 
(%i1) draw3d(
        colorbox   = "Magnitude",
        enhanced3d = true,
        explicit(x^2+y^2,x,-1,1,y,-1,1))$

figures/draw_colorbox2

palette_drawも参照してください。

Categories:  Package draw

グラフィックオプション: columns

デフォルト値: 1

columnsは多重プロットでの列の数です。

これはグローバルグラフィックオプションなので、シーン記述での位置はかまいません。 関数 drawの引数として使うこともできます。

例:

 
(%i1) scene1: gr2d(title="Ellipse",
                   nticks=30,
                   parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
(%i2) scene2: gr2d(title="Triangle",
                   polygon([4,5,7],[6,4,2]))$
(%i3) draw(scene1, scene2, columns = 2)$

figures/draw_columns

Categories:  Package draw

グラフィックオプション: contour

デフォルト値: none

オプション contourを使うと、ユーザーは等高線をプロットする場所を選択できます。 可能な値は以下の通りです:

これはグローバルグラフィックオプションなので、シーン記述での位置はかまいません。

例:

 
(%i1) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = 15,
             contour        = both,
             surface_hide   = true) $

figures/draw_contour

 
(%i1) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = 15,
             contour        = map
      ) $

figures/draw_contour2

Categories:  Package draw

グラフィックオプション: contour_levels

デフォルト値: 5

このグラフィックオプションは等高線が描かれる方法を制御します。 contour_levelsは、正の整数、 3つの数のリスト、または、数の任意の集合に設定することができます:

これはグローバルグラフィックオプションなので、シーン記述での位置はかまいません。

例:

10の等しく間隔の空けられた等高線。 レベルの実際の数は簡単なラベルを与えるために調整することができます。

 
(%i1) 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) 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) 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も参照してください。

Categories:  Package draw

グラフィックオプション: data_file_name

デフォルト値: "data.gnuplot"

これは、リクエストされたプロットを構築するために Gnuplotが必要とする数値データを含むファイルの名前です。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。 関数 drawの引数としても使うことができます。

gnuplot_file_nameの中で例を参照してください。

Categories:  Package draw

グラフィックオプション: delay

デフォルト値: 5

これはアニメーション gifファイルにおけるフレームの 1/100秒単位の遅延です。

これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。 関数 drawの引数としても使うことができます。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: 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) draw2d(
        dimensions = [300,300],
        terminal   = 'png,
        explicit(x^4,x,-1,1)) $
(%i2) draw2d(
        dimensions = [300,300],
        terminal   = 'wxt,
        explicit(x^4,x,-1,1)) $

eps出力に適用されたオプション dimensions。 A4縦寸法の epsファイルが欲しいです。

 
(%i1) A4portrait: 100*[21, 29.7]$
(%i2) draw3d(
        dimensions = A4portrait,
        terminal   = 'eps,
        explicit(x^2-y^2,x,-2,2,y,-2,2)) $

Categories:  Package draw

グラフィックオプション: draw_realpart

デフォルト値: true

trueの時、描画される関数は複素関数とみなされ、実部の値をプロットします; falseの時、関数が実数値を与えないときは何もプロットしません。

このオプションは 2Dや 3Dにおけるオブジェクト explicitparametricparametric_surfaceに作用します。

例:

オプション draw_realpartはオブジェクト explicitparametricに作用します。

 
(%i1) draw2d(
        draw_realpart = false,
        explicit(sqrt(x^2  - 4*x) - x, x, -1, 5),
        color         = red,
        draw_realpart = true,
        parametric(x,sqrt(x^2  - 4*x) - x + 1, x, -1, 5) );

Categories:  Package draw

グラフィックオプション: enhanced3d

デフォルト値: none

もし enhanced3dnoneなら3Dプロットで表面を色付けしません。 色付けされた表面を得るには、オプション enhanced3dにリストを割り当てなければいけません。 リストの最初の要素は色で、残りはその式中で使われる変数やパラメータの名前です。 [f(x,y,z), x, y, z]のようなリストは、表面の点 [x,y,z]に数 f(x,y,z)を割り当てることを意味します。数は実際の paletteに従って色付けされます。 パラメータで定義されたそれらの3Dグラフィックオブジェクトに関して、 parametricオブジェクトと tubeオブジェクトに関して[f(u), u]という具合に、 あるいは、 parametric_surfaceオブジェクトに関して [f(u,v), u, v]という具合に、 パラメータで色数を定義することが可能です。 3Dオブジェクトがすべて絶対座標に基づいたモデル [f(x,y,z), x, y, z]を採用する一方、 その中の explicitelevation_gridの2つだけは [x,y]座標上で定義されたモデル [f(x,y), x, y]も受け付けます。 3Dグラフィックオブジェクト implicit[f(x,y,z), x, y, z]モデルだけを受け付けます。 オブジェクト points[f(x,y,z), x, y, z]モデルを受け付けますが、点が順序的性質を持つ時は モデル [f(k), k]も有効です。 kは順序パラメータです。

enhanced3dnone以外の何かを割り当てた時、オプション colorsurface_hideは無視されます。

リストで定義れた変数名はグラフィックオブジェクトの定義で使われたものと異なるかもしれません。

下位互換性を維持するために、 enhanced3d = falseenhanced3d = noneと同値で、 enhanced3d = trueenhanced3d = [z, x, y, z]と同値です。 もし enhanced3dに式が与えられたら、 その変数は表面定義で使われたものと同じでなければいけません。 リストを使う時にはこれは必要ありません。

もし enhanced3dfalseなら、 3dプロットで表面は色付けられません。 もし enhanced3dtrueなら、 Gnuplotの pm3dモードを設定して表面が色付けられます。 もし式が enhanced3dに与えられるなら、 それは paletteに従って色を割り当てるのに使われます; この式の中の変数は表面記述で使われるものと同じでなければいけません。

如何にパレットが指定されるか知るためには、オプション paletteを参照してください。

例:

 
(%i1) draw3d(
         enhanced3d = [x-z/10,x,y,z],
         palette    = gray,
         explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$

figures/draw_enhanced3d

[f(x,y), x, y]モデルで定義された色付けを持つ explicitオブジェクト。 リストで定義れた変数名はグラフィックオブジェクトの定義で使われたものと異なるかもしれません; この場合、 rxに、 syに対応します。

 
(%i1) draw3d(
         enhanced3d = [sin(r*s),r,s],
         explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$

figures/draw_enhanced3d2

[f(x,y,z), x, y, z]モデルで定義された色付けを持つ parametricオブジェクト。

 
(%i1) draw3d(
         nticks = 100,
         line_width = 2,
         enhanced3d = [if y>= 0 then 1 else 0, x, y, z],
         parametric(sin(u)^2,cos(u),u,u,0,4*%pi)) $

figures/draw_enhanced3d3

[f(u), u]モデルで定義された色付けを持つ parametricオブジェクト。

この場合、 (u-1)^2[(u-1)^2,u]のショートカットです。

 
(%i1) draw3d(
         nticks = 60,
         line_width = 3,
         enhanced3d = (u-1)^2,
         parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2))$

figures/draw_enhanced3d4

[f(x,y), x, y]モデルで定義された色付けを持つ elevation_gridオブジェクト。

 
(%i1) m: apply(
           matrix,
           makelist(makelist(cos(i^2/80-k/30),k,1,30),i,1,20)) $
(%i2) draw3d(
         enhanced3d = [cos(x*y*10),x,y],
         elevation_grid(m,-1,-1,2,2),
         xlabel = "x",
         ylabel = "y");

figures/draw_enhanced3d5

[f(x,y,z), x, y, z]モデルで定義された色付けを持つ tubeオブジェクト。

 
(%i1) draw3d(
         enhanced3d = [cos(x-y),x,y,z],
         palette = gray,
         xu_grid = 50,
         tube(cos(a), a, 0, 1, a, 0, 4*%pi) )$

figures/draw_enhanced3d6

[f(u), u]モデルで定義された色付けを持つ tubeオブジェクト。 ここで enhanced3d = -aenhanced3d = [-foo,foo]のショートカットになります。

 
(%i1) draw3d(
         capping = [true, false],
         palette = [26,15,-2],
         enhanced3d = [-foo, foo],
         tube(a, a, a^2, 1, a, -2, 2) )$

figures/draw_enhanced3d7

[f(x,y,z), x, y, z]モデルで定義された色付けを持つ implicitオブジェクトと pointsオプジェクト

 
(%i1) draw3d(
         enhanced3d = [x-y,x,y,z],
         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)) $
(%i2) m: makelist([random(1.0),random(1.0),random(1.0)],k,1,2000)$

figures/draw_enhanced3d9

 
(%i3) draw3d(
         point_type = filled_circle,
         point_size = 2,
         enhanced3d = [u+v-w,u,v,w],
         points(m) ) $

figures/draw_enhanced3d10

点が順序的性質を持つ時、モデル [f(k), k]も有効です。 kは順序パラメータです。

 
(%i1) m:makelist([random(1.0), random(1.0), random(1.0)],k,1,5)$
(%i2) draw3d(
         enhanced3d = [sin(j), j],
         point_size = 3,
         point_type = filled_circle,
         points_joined = true,
         points(m)) $

figures/draw_enhanced3d11

Categories:  Package draw

グラフィックオプション: error_type

デフォルト値: y

値は x, y, xyを取り得ますが、 その値に依存して、グラフィックオブジェクト errorsは水平エラーバー、垂直エラーバー、その両方を伴って点を描画します。 error_type=boxesの時、クロスの代わりにボックスが描かれます。

errorsも参照してください。

グラフィックオプション: file_name

デフォルト値: "maxima_out"

これは、端末png, jpg, eps, eps_color, pdf, pdfcairoがグラフィックを保存するファイルの名前です。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(file_name = "myfile",
             explicit(x^2,x,-1,1),
             terminal  = 'png)$

terminal, dimensionsも参照してください。

Categories:  Package draw

グラフィックオプション: fill_color

デフォルト値: "red"

fill_colorはポリゴンと 2d explicit関数を塗りつぶすための色を指定します。

如何に色が指定されるかを知るには colorを参照してください。

Categories:  Package draw

グラフィックオプション: fill_density

デフォルト値: 0

fill_densitybarsオブジェクトに関して fill_colorの強度を指定する数です。 0と 1の間の数です。

例を見るには barsを参照してください。

グラフィックオプション: filled_func

デフォルト値: false

オプション filled_funcは関数によって制限された領域が如何に塗りつぶされるべきかを 制御します。 filled_functrueの時、 オブジェクト explicitとグラフィックウィンドウの底で定義された関数によって閉ざされた領域を fill_colorで塗りつぶします。 filled_funcが関数式を含む時、 この関数とオブジェクト explicit で定義された関数によって閉ざされた領域を 塗りつぶします。 デフォルトでは、明示的な関数は塗りつぶされません。

役に立つ特殊なケースは filled_func=0です。 水平軸と明示関数による領域の縁を生成します。

このオプションは 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の中の変数は explicitの中で使われるものと同じでなければいけないことに注意してください。

 
(%i1) draw2d(fill_color  = red,
             filled_func = sin(x),
             explicit(-sin(x),x,0,%pi));

figures/draw_filledfunc

Region bounded by an explicitオブジェクトとオプション filled_funcで定義された関数で囲まれた領域。 Note that the variable in filled_funcの変数は explicitで使われるそれと同じでなければいけないことに注意してください。

 
(%i1) draw2d(fill_color  = grey,
             filled_func = sin(x),
             explicit(-sin(x),x,0,%pi));

figures/draw_filledfunc2 fill_colorexplicitも参照してください。

Categories:  Package draw

グラフィックオプション: font

デフォルト値: "" (empty string)

このオプションは端末が使う書体を設定するために使うことができます。 プロットを通して書体とサイズは1つだけ使うことができます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

font_sizeも参照してください。

Gnuplotはそれ自身フォントを扱いません。 異なる端末のサポートライブラリに任せます。 それぞれはフォントに関して独自の哲学を持っています。 簡単なまとめは以下の通りです:

Gnuplotドキュメンテーションは端末とフォントに関する情報の重要なソースです。

Categories:  Package draw

グラフィックオプション: font_size

デフォルト値: 10

このオプションは、端末が使うフォントサイズを設定するために使うことができます。 1つの書体とサイズだけがプロットの間中で使うことができます。 オプション fontが空の文字列に等しくない時だけ、 font_sizeはアクティブです。

これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題になりません。

fontも参照してください。

Categories:  Package draw

グラフィックオプション: gnuplot_file_name

デフォルト値: "maxout_xxx.gnuplot" ここで "xxx"は同時に走っているmaximaプロセスそれぞれに固有の数字です。

これは Gnuplotで処理される必要なコマンドを含むファイルの名前です。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。 関数 drawの引数としても使うことができます。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: grid

デフォルト値: false

もし gridnot falseなら、 xy平面上に格子を描きます。 もし gridに trueを割り当てたなら、 それぞれの軸の目盛毎にグリッド線を1つ引きます。 もし grid[nx,ny] > [0,0]のリスト nx,nyを割り当てたなら、 x軸の目盛毎に nx個の線を、y軸の目盛毎に ny個の線を引きます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(grid = true,
             explicit(exp(u),u,-2,2))$

figures/draw_grid

 
(%i1) draw2d(grid = [2,2],
             explicit(sin(x),x,0,2*%pi))$

figures/draw_grid2

Categories:  Package draw

グラフィックオプション: head_angle

デフォルト値: 45

head_angleは矢印の頭と線分の間の角度を度の単位で示します。

このオプションは vectorオブジェクトに対してだけ有効です。

例:

 
(%i1) 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]) )$

figures/draw_head_angle

head_both, head_length, head_typeも参照してください。

Categories:  Package draw

グラフィックオプション: head_both

デフォルト値: false

もし head_bothtrueなら、ベクトルを2つの矢先と共に描画します。 もし falseなら1つの矢だけが描かれます。

このオプションは vectorオブジェクトに対してだけ有効です。

例:

 
(%i1) draw2d(xrange      = [0,8],
             yrange      = [0,8],
             head_length = 0.7,
             vector([1,1],[6,0]),
             head_both   = true,
             vector([1,7],[6,0]) )$

figures/draw_head_both

head_length, head_angle, head_typeも参照してください。

Categories:  Package draw

グラフィックオプション: head_length

デフォルト値: 2

head_lengthは矢印の頭の長さを x-軸の単位で示します。

このオプションは vectorオブジェクトに対してだけ有効です。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: head_type

デフォルト値: filled

head_typeは矢印の頭を如何にプロットするかを指定するのに使われます。 可能な値は以下の通りです: filled (閉じていて塗りつぶされた矢印の頭), empty (閉じているが塗りつぶされていない矢印の頭), nofilled (開いた矢印の頭)。

このオプションは vectorオブジェクトにだけ有効です。

例:

 
(%i1) 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]))$

figures/draw_head_type

head_both, head_angle, head_lengthも参照してください。

Categories:  Package draw

グラフィックオプション: interpolate_color

デフォルト値: false

このオプションは enhanced3dfalseでない時だけ有効です。

interpolate_colorfalseの時、表面が均一な四角形で色付けします。 trueの時、色の遷移を内挿で滑らかにします。

interpolate_colorは2つの数字のリスト [m,n]も受け付けます。 正の mnの場合、四角形もしくは三角形それぞれをそれぞれの方向に m回、 n回内挿します。 負の mnの場合、少なくとも |m|点、 |n|点描かれるように内挿頻度を選びます; 特殊なグリッド関数と考えるといいでしょう。 ゼロ、すなわち interpolate_color=[0,0]は表面上の内挿点の最適数を自動的に選択します。

また、 interpolate_color=trueinterpolate_color=[0,0]と等価です。

例:

陽関数での色内挿。

 
(%i1) draw3d(
        enhanced3d   = sin(x*y),
        explicit(20*exp(-x^2-y^2)-10, x ,-3, 3, y, -3, 3)) $

figures/draw_interpolate_color

 
(%i2) draw3d(
        interpolate_color = true,
        enhanced3d   = sin(x*y),
        explicit(20*exp(-x^2-y^2)-10, x ,-3, 3, y, -3, 3)) $

figures/draw_interpolate_color2

 
(%i3) draw3d(
        interpolate_color = [-10,0],
        enhanced3d   = sin(x*y),
        explicit(20*exp(-x^2-y^2)-10, x ,-3, 3, y, -3, 3)) $

figures/draw_interpolate_color3

meshグラフィックオブジェクトでの色内装。

パラメトリック表面内の内挿色は予期しない結果をもたらす可能性があります。

 
(%i1) draw3d(
        enhanced3d = true,
        mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
             [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
             [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $

figures/draw_interpolate_color4

 
(%i2) draw3d(
        enhanced3d        = true,
        interpolate_color = true,
        mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
             [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
             [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $

figures/draw_interpolate_color5

 
(%i3) draw3d(
        enhanced3d        = true,
        interpolate_color = true,
        view=map,
        mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
             [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
             [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $

figures/draw_interpolate_color6

enhanced3dも参照してください。

Categories:  Package draw

グラフィックオプション: ip_grid

デフォルト値: [50, 50]

ip_gridは陰的プロットでの最初のサンプリングのためにグリッドを設定します。

このオプションは implicitオブジェクトに対してだけ関係があります。

Categories:  Package draw

グラフィックオプション: ip_grid_in

デフォルト値: [5, 5]

ip_gridi_inは陰的プロットでの二番目のサンプリングのためにグリッドを設定します。

このオプションは implicitオブジェクトに対してだけ関係があります。

Categories:  Package draw

グラフィックオプション: key

デフォルト値: "" (empty string)

keyは凡例の中の関数名です。 もし keyが空の文字列なら、関数にキーを割り当てません。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) draw2d(key   = "Sinus",
             explicit(sin(x),x,0,10),
             key   = "Cosinus",
             color = red,
             explicit(cos(x),x,0,10) )$

figures/draw_key

グラフィックオプション: key_pos

デフォルト値: "" (空文字列)

key_pos は凡例を描画する位置を定義します。 もし key が空文字列なら、 "top_right" を使います。 利用可能な位置指定子は以下の通り: top_left, top_center, top_right, center_left, center, center_right, bottom_left, bottom_center, bottom_right

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(
        key_pos = top_left,
        key   = "x",
        explicit(x,  x,0,10),
        color= red,
        key   = "x squared",
        explicit(x^2,x,0,10))$
(%i3) draw3d(
        key_pos = center,
        key   = "x",
        explicit(x+y,x,0,10,y,0,10),
        color= red,
        key   = "x squared",
        explicit(x^2+y^2,x,0,10,y,0,10))$

figures/draw_key_pos

Categories:  Package draw

グラフィックオプション: label_alignment

デフォルト値: center

label_alignmentは 与えられた座標に関するラベルを書く場所を指定するのに使われます。 可能な値は以下のものです: center, left, right.

このオプションは labelオブジェクトに対してだけ有効です。

例:

 
(%i1) 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]))$

figures/draw_label_alignment

label_orientation, colorも参照してください。

Categories:  Package draw

グラフィックオプション: label_orientation

デフォルト値: horizontal

label_orientationはラベルの向きを指定するのに使われます。 可能な値は以下のものです: horizontal, vertical.

このオプションは labelオブジェクトに対してだけ有効です。

例:

この例では、ダミーの点がイメージを得るために加えられます。 パッケージ drawはいつもシーンを描くのにデータを必要とします。

 
(%i1) 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]))$

figures/draw_label_orientation

label_alignmentcolorも参照してください。

Categories:  Package draw

グラフィックオプション: line_type

デフォルト値: solid

line_typeは線が如何に表示されるかを示します; 可能な値は soliddotsで、どちらもすべての端末で利用可能です。そして dashes, short_dashes, short_long_dashes, short_short_long_dashes, dot_dash, これらは png, jpg, gif 端末の中で利用可能です。

このオプションは以下のグラフィックオブジェクトに鋭意供します:

例:

 
(%i1) draw2d(line_type = dots,
             explicit(1 + x^2,x,-1,1),
             line_type = solid, /* default */
             explicit(2 + x^2,x,-1,1))$

figures/draw_line_type

line_widthも参照してください。

Categories:  Package draw

グラフィックオプション: line_width

デフォルト値: 1

line_widthはプロットする線の幅です。 値は正の数でなければいけません。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) 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))$

figures/draw_line_width

line_typeも参照してください。

Categories:  Package draw

グラフィックオプション: logcb

デフォルト値: false

もし logcbtrueなら、 カラーボックスのチックを対数スケールで描きます。

enhanced3dcolorboxfalseの時、オプション logcbは効果を持ちません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) 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)) $

figures/draw_logcb

enhanced3d, colorbox, cbrangeも参照してください。

Categories:  Package draw

グラフィックオプション: logx

デフォルト値: false

もし logxtrueなら x軸を対数スケールで描きます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。 ただし、どの2D explicitオブジェクトより先に記述されなければいけないという例外があります。 そうすることで drawはよりよいプロットを生成できます。

例:

 
(%i1) draw2d(logx = true,
             logx = true)$

logy_draw, logx_secondary, logy_secondary, logzも参照してください。

Categories:  Package draw

グラフィックオプション: logx_secondary

デフォルト値: false

もし logx_secondarytrueなら、 第2の x 軸を対数スケールで描画します。

このオプションは2dシーンでだけ有効です。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(
        grid = true,
        key="x^2, linear scale",
        color=red,
        explicit(x^2,x,1,100),
        xaxis_secondary = true,
        xtics_secondary = true,
        logx_secondary  = true,
        key = "x^2, logarithmic x scale",
        color = blue,
        explicit(x^2,x,1,100) )$

figures/draw_logx_secondary

logx_draw, logy_draw, logy_secondary, logzも参照してください。

Categories:  Package draw

グラフィックオプション: logy

デフォルト値: false

もし logytrueなら y軸は対数スケールで描かれます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(logy = true,
             explicit(exp(x),x,0,5))$

logx_draw, logx_secondary, logy_secondary, logz.も参照してください。

Categories:  Package draw

グラフィックオプション: logy_secondary

デフォルト値: false

もし logy_secondarytrueなら、 第2の y 軸を対数スケールで描画します。

このオプションは2dシーンでだけ有効です。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(
        grid = true,
        key="x^2, linear scale",
        color=red,
        explicit(x^2,x,1,100),
        yaxis_secondary = true,
        ytics_secondary = true,
        logy_secondary  = true,
        key = "x^2, logarithmic y scale",
        color = blue,
        explicit(x^2,x,1,100) )$

logx_draw, logy_draw, logx_secondary, logzも参照してください。

Categories:  Package draw

グラフィックオプション: logz

デフォルト値: false

もし logztrueなら z軸を対数スケールで描きます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw3d(logz = true,
             explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$

logx_draw, logy_drawも参照してください。

Categories:  Package draw

グラフィックオプション: nticks

デフォルト値: 29

2dでは、 nticksは、適応プロットルーチンが陽的オブジェクトに関して使う点の初期数を与えます。 それはパラメトリック曲線と極座標曲線で描かれる点の数でもあります。

このオプションは以下のグラフィックオブジェクトに影響を与えます:

adapt_depthも参照してください。

例:

 
(%i1) draw2d(transparent = true,
             ellipse(0,0,4,2,0,180),
             nticks = 5,
             ellipse(0,0,4,2,180,180) )$

figures/draw_nticks

Categories:  Package draw

グラフィックオプション: palette

デフォルト値: 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 = graypalette = colorは、それぞれ palette = [3,3,3]palette = [7,5,15]のショートカットです

2つ目の方法では、 paletteはユーザー定義のルックアップテーブルです。 この場合、長さ nのルックアップテーブルを構成するフォーマットは palette=[color_1, color_2, ..., color_nです。 ここで、 color_icolor_iを最低のグレイレベルに割り当て、 color_nを最高に割り当てるような均整のとれた色です (オプション colorを参照してください)。 残りの色は内挿されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

3Dオブジェクトでのオプション enhanced3dと一緒に機能します。

 
(%i1) 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))$

figures/draw_palette

グレイイメージとも一緒に機能します。

 
(%i1) im: apply(
           'matrix,
            makelist(makelist(random(200),i,1,30),i,1,30))$
(%i2) /* palette = color, default */
      draw2d(image(im,0,0,30,30))$
(%i3) draw2d(palette = gray, image(im,0,0,30,30))$
(%i4) draw2d(palette = [15,20,-4],
             colorbox=false,
             image(im,0,0,30,30))$

figures/draw_palette2

paletteはユーザー定義のルックアップテーブルの場合があります。 この例では、 xの低いレベルは赤に割り当てられ、高いレベルは黄色に割り当てられています。

 
(%i1) draw3d(
         palette = [red, blue, yellow],
         enhanced3d = x,
         explicit(x^2+y^2,x,-1,1,y,-1,1)) $

figures/draw_palette3

colorboxenhanced3dも参照してください。

Categories:  Package draw

グラフィックオプション: point_size

デフォルト値: 1

point_sizeはプロットする点のサイズを設定します。 非負数でなければいけません。

グラフィックオプション point_typedotに設定される時このオプションは効果を持ちません。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) 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)))$

figures/draw_point_size

Categories:  Package draw

グラフィックオプション: point_type

デフォルト値: 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)。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) 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]]) )$

figures/draw_point_type

Categories:  Package draw

グラフィックオプション: points_joined

デフォルト値: false

points_joinedtrueの時、点を線で結びます; falseの時、孤立した点が描かれます。 このグラフィックオプションの三番目の可能な値は impulsesです; この場合、点から x軸(2D)もしくは xy平面(3D)へ垂直の線分が描かれます。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) 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]]) )$

figures/draw_points_joined

Categories:  Package draw

グラフィックオプション: proportional_axes

デフォルト値: none

proportional_axesxyxyzに等しい時、 2Dか 3Dシーンでそれらの相対的な長さに比例する軸とともに描画するように 軸単位のアスペクトレシオを 1:1に設定します。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

このオプションは Gnuplot 4.2.6以上で機能します。

例:

単プロット。

 
(%i1) 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) $

figures/draw_proportional_axis

多重プロット。

 
(%i1) 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)))$

figures/draw_proportional_axis2

Categories:  Package draw

グラフィックオプション: surface_hide

デフォルト値: false

もし surface_hidetrueなら、隠れた部分を 3d表面にプロットしません。

これはグローバルグラフィックオプションなので、シーン記述での位置はかまいません。

例:

 
(%i1) 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)) )$

figures/draw_surface_hide

Categories:  Package draw

グラフィックオプション: terminal

デフォルト値: screen

Gnuplotが使う端末を選択します; 可能な値は: screen (デフォルト), png, pngcairo, jpg, gif, eps, eps_color, epslatex, epslatex_standalone, svg, canvas, dumb, dumb_file, pdf, pdfcairo, wxt, animated_gif, multipage_pdfcairo, multipage_pdf, multipage_eps, multipage_eps_color, aquaterm

端末 screen, wxt, aquatermは2つの要素を持つリストとしても定義できます: 端末自身の名前と非負の整数。 この形式では、それぞれ対応する番号を持つ複数のウィンドウを同時に開くことができます。 この特長は Windowsプラットフォームでは機能しません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。 関数 drawの引数としても使われます。

注意せよ― pdfcairoは Gnuplot 4.3を必要とします。 pdfは、Gnuplotをオプション --enable-pdfでコンパイルすることを必要とし、 libpdfがインストールされていなければいけません。 pdfライブラリは以下で入手可能です: http://www.pdflib.com/en/download/pdflib-family/pdflib-lite/

例:

 
(%i1) /* screen terminal (default) */
      draw2d(explicit(x^2,x,-1,1))$
(%i2) /* png file */
      draw2d(terminal  = 'png,
             explicit(x^2,x,-1,1))$
(%i3) /* jpg file */
      draw2d(terminal   = 'jpg,
             dimensions = [300,300],
             explicit(x^2,x,-1,1))$
(%i4) /* eps file */
      draw2d(file_name = "myfile",
             explicit(x^2,x,-1,1),
             terminal  = 'eps)$
(%i5) /* pdf file */
      draw2d(file_name = "mypdf",
             dimensions = 100*[12.0,8.0],
             explicit(x^2,x,-1,1),
             terminal  = 'pdf)$
(%i6) /* wxwidgets window */
      draw2d(explicit(x^2,x,-1,1),
             terminal  = 'wxt)$

複数のウィンドウ。

 
(%i1) draw2d(explicit(x^5,x,-2,2), terminal=[screen, 3])$
(%i2) draw2d(explicit(x^2,x,-2,2), terminal=[screen, 0])$

動画 gifファイル。

 
(%i1) 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
(%o1)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

オプション delayは動画 gifでだけ有効です; 他のいかなる場合も無視されます。

eps 形式での複数ページ出力。

 
(%i1) draw(
        file_name = "parabol",
        terminal  = multipage_eps,
        dimensions = 100*[10,10],
        gr2d(explicit(x^2,x,-1,1)),
        gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1))) $

file_name, dimensions, delayも参照してください。

Categories:  Package draw

グラフィックオプション: title

デフォルト値: "" (empty string)

オプション title、文字列は、シーンのメインタイトルです。 デフォルトではタイトルは書かれません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(explicit(exp(u),u,-2,2),
             title = "Exponential function")$

figures/draw_title

Categories:  Package draw

グラフィックオプション: transform

デフォルト値: none

もし transformnoneなら、 空間を変換せず、グラフィックオブジェクトを定義の通り描画します。 空間変換を望む時、リストをオプション 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) th : %pi / 4$
(%i2) 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]) )$

figures/draw_transform

3Dでの変形。

 
(%i1) 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) )$

Categories:  Package draw

グラフィックオプション: transparent

デフォルト値: false

もし transparentfalseなら、 ポリゴンの内側の領域は fill_colorに従って塗りつぶされます。

このオプションは以下のグラフィックオブジェクトに影響します:

例:

 
(%i1) draw2d(polygon([[3,2],[7,2],[5,5]]),
             transparent = true,
             color       = blue,
             polygon([[5,2],[9,2],[7,5]]) )$

figures/draw_transparent

Categories:  Package draw

グラフィックオプション: unit_vectors

デフォルト値: false

もし unit_vectorstrueなら、ベクトルは単位 1でプロットされます。 これはベクトル場をプロットするのに役に立ちます。 もし unit_vectorsfalseなら、ベクトルは元の長さでプロットされます。

このオプションは vectorオブジェクトに対してだけ有効です。

例:

 
(%i1) 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]))$

figures/draw_unit_vectors

Categories:  Package draw

グラフィックオプション: user_preamble

デフォルト値: "" (empty string)

熟練 Gnuplotユーザーは、 plotsplotコマンドの前に送られる設定を書くことで、 このオプションを利用して、 Gnuplotの振る舞いを微調整することができます。

このオプションの値は文字列か(行毎に1つの)文字列のリストでなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

Gnuplotにグラフィックオブジェクトの頭に軸とグリッドを描画するよう命令します。

 
(%i1) draw2d(
        xaxis =true, xaxis_type=solid,
        yaxis =true, yaxis_type=solid,
        user_preamble="set grid front",
        region(x^2+y^2<1 ,x,-1.5,1.5,y,-1.5,1.5))$

figures/draw_user_preamble

gnuplotに黒ですべての等高線を描画するように命令します。

 
(%i1) wxdraw3d(
          contour=both,
          surface_hide=true,enhanced3d=true,wired_surface=true,
          contour_levels=10,
          user_preamble="set for [i=1:8] linetype i dashtype i linecolor 0",
          explicit(sin(x)*cos(y),x,1,10,y,1,10)
      );

figures/draw_user_preamble2

Categories:  Package draw

グラフィックオプション: view

デフォルト値: [60,30]

3Dシーンでビュー方向を示す度数で測られた角度の対。 最初の角度は x軸回りの垂直回転であり、 [0, 360]の範囲です。 二番目は z回りの水平回転であり、 [0, 360]の範囲です。

もしオプション viewに値 mapを与えたなら、ビュー方向をxy-平面に垂直に設定します。

これはグローバルグラフィックスオプションなので、 シーン記述の位置は問題なりません。

例:

 
(%i1) draw3d(view = [170, 50],
             enhanced3d = true,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$

figures/draw_view

 
(%i2) draw3d(view = map,
             enhanced3d = true,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$

figures/draw_view2

Categories:  Package draw

グラフィックオプション: wired_surface

デフォルト値: false

enhanced3dモードでの 3D 表面が点を結合したグリッドを表示するかどうかを示します。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw3d(
        enhanced3d    = [sin(x),x,y],
        wired_surface = true,
        explicit(x^2+y^2,x,-1,1,y,-1,1)) $

figures/draw_wired_surface

Categories:  Package draw

グラフィックオプション: x_voxel

デフォルト値: 10

x_voxelは 3d 陰的オブジェクトで実装されたマーチングキューブアルゴリズム x方向のボクセルの数です。 グラフィックオブジェクト regionでも使われます。

Categories:  Package draw

グラフィックオプション: xaxis

デフォルト値: false

もし xaxistrueなら、 x軸を描きます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_color = blue)$

figures/draw_xaxis

xaxis_width, xaxis_type, xaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: xaxis_color

デフォルト値: "black"

xaxis_colorx軸の色を指定します。 色をどう定義するかを知るには colorを参照してください。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_color = red)$

xaxis, xaxis_width, xaxis_typeも参照してください。

Categories:  Package draw

グラフィックオプション: xaxis_secondary

デフォルト値: false

もし xaxis_secondarytrueなら、 関数値を、二番目の x軸に関してプロットできます。 二番目の x軸はシーンのトップに描かれます。

これは 2dプロットにだけ影響する局所的なグラフィックオプションであることに注意してください。

例:

 
(%i1) 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)) $

figures/draw_xaxis_secondary

xrange_secondary, xtics_secondary, xtics_rotate_secondary, xtics_axis_secondary, xaxis_secondaryも参照してください。

グラフィックオプション: xaxis_type

デフォルト値: dots

xaxis_typex軸をどう表示するかを示します; 可能な値は soliddotsです。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_type  = solid)$

xaxis, xaxis_width, xaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: xaxis_width

デフォルト値: 1

xaxis_widthx軸の幅です。 その値は正数でなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_width = 3)$

xaxis, xaxis_type, xaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: xlabel

デフォルト値: "x"

オプションxlabel、文字列は x軸のラベルです。 デフォルトでは、軸は文字列 "x"でラベルされます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(xlabel = "Time",
             explicit(exp(u),u,-2,2),
             ylabel = "Population")$

xlabel_secondaryylabel, ylabel_secondary, zlabelも参照してください。

Categories:  Package draw

グラフィックオプション: xlabel_secondary

デフォルト値: "" (空の文字列)

文字列であるオプション xlabel_secondaryは副x軸のラベルです。 デフォルトでは何も書かれません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(
         xaxis_secondary=true,yaxis_secondary=true,
         xtics_secondary=true,ytics_secondary=true,
         xlabel_secondary="t[s]",
         ylabel_secondary="U[V]",
         explicit(sin(t),t,0,10) )$

xlabel, ylabel, ylabel_secondary, zlabelも参照してください。

Categories:  Package draw

グラフィックオプション: xrange

デフォルト値: auto

もし xrangeautoなら x座標の範囲を自動的に計算します。

もしユーザーが xに関して特定の区間が欲しいなら、 xrange=[-2, 3]のように Maximaリストとして与えられなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(xrange = [-3,5],
             explicit(x^2,x,-1,1))$

yrangezrangeも参照してください。

Categories:  Package draw

グラフィックオプション: xrange_secondary

デフォルト値: auto

もし xrange_secondaryautoなら 二番目の x軸の範囲を自動的に計算します。

もしユーザーが二番目の x軸の特定した区間が欲しいなら、 xrange_secondary=[-2, 3]のように Maximaリストとして与えられなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

xrange, yrange, zrange, yrange_secondaryも参照してください。

Categories:  Package draw

グラフィックオプション: xtics

デフォルト値: true

このグラフィックオプション制御はチックマークを x軸上に描く方法を制御します。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

チックをディセーブルします。

 
(%i1) draw2d(xtics = 'false,
             explicit(x^3,x,-1,1)  )$

1/4単位毎のチック。

 
(%i1) draw2d(xtics = 1/4,
             explicit(x^3,x,-1,1)  )$

-3/4から 3/4まで 1/8のステップでチック。

 
(%i1) draw2d(xtics = [-3/4,1/8,3/4],
             explicit(x^3,x,-1,1)  )$

点 -1/2, -1/4, 3/4にチック。

 
(%i1) draw2d(xtics = {-1/2,-1/4,3/4},
             explicit(x^3,x,-1,1)  )$

ラベルされたチック。

 
(%i1) draw2d(xtics = {["High",0.75],["Medium",0],["Low",-0.75]},
             explicit(x^3,x,-1,1)  )$

ytics, zticsも参照してください。

Categories:  Package draw

グラフィックオプション: xtics_axis

デフォルト値: false

もし xtics_axistrueなら、 チックマークとそれらのラベルを x軸に沿ってだけプロットします。 もし falseなら、チックを境界上にプロットします。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: xtics_rotate

デフォルト値: false

もし xtics_rotatetrueなら、 x軸上のチックマークを90度回転します。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: xtics_rotate_secondary

デフォルト値: false

もし xtics_rotate_secondarytrueなら、 補助的な x軸上のチックマークが 90度回転されます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: xtics_secondary

デフォルト値: auto

このグラフィックオプションは、二番目の x軸上にチックマークを描く方法を制御します。

完全な記述に関しては xticsを参照してください。

Categories:  Package draw

グラフィックオプション: xtics_secondary_axis

デフォルト値: false

もし xtics_secondary_axistrueなら、 チックマークとそれらのラベルを補助的な x軸に沿ってだけプロットし、 もし falseなら境界上にプロットします。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: xu_grid

デフォルト値: 30

xu_gridは サンプル点のグリッドを構築するための一番目の変数 (陽での x、パラメトリック3d表面での u)の座標の数です。

このオプションは以下のグラフィックオブジェクトに影響を与えます:

例:

 
(%i1) draw3d(xu_grid = 10,
             yv_grid = 50,
             explicit(x^2+y^2,x,-3,3,y,-3,3) )$

yv_gridも参照してください。

Categories:  Package draw

グラフィックオプション: xy_file

デフォルト値: "" (empty string)

xy_fileは、マウスでクリックし 'x'キーを叩いた後、座標を保存するファイルの名前です。 デフォルトでは座標を保存しません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

Categories:  Package draw

グラフィックオプション: xyplane

デフォルト値: false

3Dシーンの中に xy平面を配置します。 xyplanefalseの時、 xy平面は自動的に置かれます; 実数の時、 xy平面はこのレベルで z軸と交わります。 このオプションは 2Dシーンでは効果を持ちません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw3d(xyplane = %e-2,
             explicit(x^2+y^2,x,-1,1,y,-1,1))$

Categories:  Package draw

グラフィックオプション: y_voxel

デフォルト値: 10

y_voxelは 3d陰的オブジェクトで実装されたマーチングキューブアルゴリズムで使われる y方向のボクセルの数です。 グラフィックオブジェクト regionでも使われます。

Categories:  Package draw

グラフィックオプション: yaxis

デフォルト値: false

もし yaxistrueなら y軸を描きます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_color = blue)$

yaxis_width, yaxis_type, yaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: yaxis_color

デフォルト値: "black"

yaxis_colory軸の色を指定します。 色がどのように定義されているか知るには colorを参照してください。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_color = red)$

yaxis, yaxis_width, yaxis_typeも参照してください。

Categories:  Package draw

グラフィックオプション: yaxis_secondary

デフォルト値: false

もし yaxis_secondarytrueなら、 関数値を二番目の y軸に関してプロットできます。 二番目の y軸をシーンの右側に描きます。

これは 2dプロットにだけ影響する局所的なグラフィックオプションであることに注意してください。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: yaxis_type

デフォルト値: dots

yaxis_typey軸がどのように表示されるか示します; 可能な値は soliddotsです。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_type  = solid)$

yaxis, yaxis_width, yaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: yaxis_width

デフォルト値: 1

yaxis_widthy軸の幅です。 その値は正の数でなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_width = 3)$

yaxis, yaxis_type, yaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: ylabel

デフォルト値: "y"

オプションylabel、文字列は y軸のラベルです。 デフォルトでは軸は文字列 "y"でラベルされます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(xlabel = "Time",
             ylabel = "Population",
             explicit(exp(u),u,-2,2) )$

xlabel, xlabel_secondary, ylabel_secondary, zlabelも参照してください。

Categories:  Package draw

グラフィックオプション: ylabel_secondary

デフォルト値: "" (空の文字列)

文字列であるオプション ylabel_secondaryは副y軸のラベルです。 デフォルトではラベルを書きません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(
        key_pos=bottom_right,
        key="current",
        xlabel="t[s]",
        ylabel="I[A]",ylabel_secondary="P[W]",
        explicit(sin(t),t,0,10),
        yaxis_secondary=true,
        ytics_secondary=true,
        color=red,key="Power",
        explicit((sin(t))^2,t,0,10)
    )$

xlabel_draw, xlabel_secondary, ylabel_draw, zlabelも参照してください。

Categories:  Package draw

グラフィックオプション: yrange

デフォルト値: auto

もし yrangeautoなら、 y座標の範囲を自動的に計算します。

もしユーザーが yの特定の区間が欲しいなら、 yrange=[-2, 3]のように Maximaリストとして与えなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw2d(yrange = [-2,3],
             explicit(x^2,x,-1,1),
             xrange = [-3,3])$

xrange, yrange_secondary, zrangeも参照してください。

Categories:  Package draw

グラフィックオプション: yrange_secondary

デフォルト値: auto

もし yrange_secondaryautoなら、二番目の y軸の範囲を自動的に計算します。

もしユーザーが二番目の y軸の特定の区間が欲しいなら、 yrange_secondary=[-2, 3]のように Maximaリストとして与えなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: ytics

デフォルト値: true

このグラフィックオプションは y軸上にチックマークを描く方法を制御します。

完全な記述に関しては xticsを参照してください。

Categories:  Package draw

グラフィックオプション: ytics_axis

デフォルト値: false

もし ytics_axistrueなら、 チックマークとそれらのラベルを y軸に沿ってだけプロットし、 もし falseなら境界上にプロットします。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: ytics_rotate

デフォルト値: false

もし ytics_rotatetrueなら、 y軸上のチックマークを90度回転させます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: ytics_rotate_secondary

デフォルト値: false

もし ytics_rotate_secondarytrueなら、 補助的な y軸上のチックマークを 90度回転させます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: ytics_secondary

デフォルト値: auto

このグラフィックオプションは、二番目の y軸上にチックマークを描く方法を制御します。

完全な記述に関しては xticsを参照してください。

Categories:  Package draw

グラフィックオプション: ytics_secondary_axis

デフォルト値: false

もし ytics_secondary_axistrueなら、 チックマークとそれらのラベルを補助的な y軸に沿ってだけプロットし、 もし falseなら境界上にプロットします。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: yv_grid

デフォルト値: 30

yv_gridはサンプル点のグリッドを構築するための二番目の変数(陽での y、パラメトリック 3d表面での v)の座標の数です。

このオプションは以下のグラフィックオブジェクトに影響を与えます:

例:

 
(%i1) draw3d(xu_grid = 10,
             yv_grid = 50,
             explicit(x^2+y^2,x,-3,3,y,-3,3) )$

figures/draw_xugrid

xu_gridも参照してください。

Categories:  Package draw

グラフィックオプション: z_voxel

デフォルト値: 10

z_voxelは 3d 陰的オブジェクトで実装されたマーチングキューブアルゴリズム で使われる z方向のボクセルの数です。

Categories:  Package draw

グラフィックオプション: zaxis

デフォルト値: false

もし zaxistrueなら、 3Dプロットで z軸を描きます。 このオプションは 2Dシーンでは効果を持ちません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: zaxis_color

デフォルト値: "black"

zaxis_colorz軸の色を指定します。 色がどのように定義されているか知るには colorを参照してください。 このオプションは 2Dシーンでは効果を持ちません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: zaxis_type

デフォルト値: dots

zaxis_typez軸がどのように表示されるか示します; 可能な値は soliddotsです。 このオプションは 2Dシーンでは効果を持ちません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
             zaxis       = true,
             zaxis_type  = solid)$

zaxis, zaxis_width, zaxis_colorも参照してください。

Categories:  Package draw

グラフィックオプション: zaxis_width

デフォルト値: 1

zaxis_widthz軸の幅です。 その値は正の数でなければいけません。 このオプションは 2Dシーンでは効果を持ちません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題なりません。

例:

 
(%i1) 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も参照してください。

Categories:  Package draw

グラフィックオプション: zlabel

デフォルト値: "z"

オプション zlabel文字列は z軸のラベルです。 デフォルトでは軸は文字列 "z"でラベルされます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw3d(zlabel = "Z variable",
             ylabel = "Y variable",
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
             xlabel = "X variable" )$

xlabel_drawylabel_drawも参照してください。

Categories:  Package draw

グラフィックオプション: zlabel_rotate

デフォルト値: "auto"

このグラフィックオプションは もし3dプロットのz軸ラベルを水平に描画するか (false)垂直か (true) もしくはラベルの長さに基づいてmaximaが方向を自動的に選択するか auto)を選ぶことを可能にします。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw3d(
          explicit(sin(x)*sin(y),x,0,10,y,0,10),
          zlabel_rotate=false
      )$

zlabel_drawも参照してください。

Categories:  Package draw

グラフィックオプション: zrange

デフォルト値: auto

もし zrangeautoなら、 z座標の範囲を自動的に計算します。

もしユーザーが zの特定の区間が欲しいなら、 zrange=[-2, 3]のように Maximaリストとして与えなければいけません。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

例:

 
(%i1) draw3d(yrange = [-3,3],
             zrange = [-2,5],
             explicit(x^2+y^2,x,-1,1,y,-1,1),
             xrange = [-3,3])$

xrange, yrangeも参照してください。

Categories:  Package draw

グラフィックオプション: ztics

デフォルト値: auto

このグラフィックオプションは、 z軸上にチックマークを描く方法を制御します。

完全な記述に関しては xticsを参照してください。

Categories:  Package draw

グラフィックオプション: ztics_axis

デフォルト値: false

もし ztics_secondary_axistrueなら、 チックマークとそれらのラベルを補助的な z軸に沿ってだけプロットし、 もし falseなら境界上にプロットします。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw

グラフィックオプション: ztics_rotate

デフォルト値: false

もし ztics_rotatetrueなら、 z軸上のチックマークを 90度回転させます。

これはグローバルグラフィックスオプションなので、シーン記述の位置は問題になりません。

Categories:  Package draw


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

52.2.4 Graphics objects

グラフィックオブジェクト: bars ([x1,h1,w1], [x2,h2,w2, ...])

2D内に垂直バーを描画します。

2D

bars ([x1,h1,w1], [x2,h2,w2, ...])は値 x1, x2, ...に中心を持ち、高さ h1, h2, ...と幅 w1, w2, ...を持つバーを描画します。

このオブジェクトは以下のグラフィックオプションに影響されます: key, fill_color, fill_density, line_width

例:

 
(%i1) 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);

figures/draw_bars

グラフィックオブジェクト: cylindrical (radius, z, minz, maxz, azi, minazi, maxazi)

円柱座標で定義された 3D関数を描画します。

3D

cylindrical (radius, z, minz, maxz, azi, minazi, maxazi)minzから maxzまでの値を取る zminaziから maxaziまで値を取る方位角 aziを伴う円柱座標で定義された関数 radius(z,azi)をプロットします。

このオブジェクトは以下のグラフィックオプションに作用されます: xu_grid, yv_grid, line_type, key, wired_surface, enhanced3d, color

例:

 
(%i1) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$

figures/draw_cylindrical

Categories:  Package draw

グラフィックオブジェクト: elevation_grid (mat,x0,y0,width,height)

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, wired_surface, enhanced3d, color

Maximaの古いバージョンでは elevation_gridmeshと呼びました。 meshも参照してください。

例:

 
(%i1) m: apply(
            matrix,
            makelist(makelist(random(10.0),k,1,30),i,1,20)) $
(%i2) draw3d(
         color = blue,
         elevation_grid(m,0,0,3,2),
         xlabel = "x",
         ylabel = "y",
         surface_hide = true);

figures/draw_elevation_grid

Categories:  Package draw

グラフィックオブジェクト: ellipse (xc, yc, a, b, ang1, ang2)

2D内で楕円や円を描画します。

2D

ellipse (xc, yc, a, b, ang1, ang2)[xc, yc]を中心とし、水平と垂直半軸にそれぞれ abを持ち、角度 ang1から始まり、角度 ang2に等しい振幅を持つ楕円をプロットします。

このオブジェクトは以下のgraphic optionsに影響されます: nticks, transparent, fill_color, border, line_width, line_type, key, color.

例:

 
(%i1) 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] )$

figures/draw_ellipse

Categories:  Package draw

グラフィックオブジェクト: errors ([x1, x2, …], [y1, y2, …])

オプション error_typeの値に依存して、 水平、垂直もしくは両方のエラーバーと共に点を描きます。

2D

もし error_type = xなら、 errorsの引数は形式 [x, y, xdelta][x, y, xlow, xhigh]でなければいけません。 もし error_type = yなら、 引数は形式 [x, y, ydelta][x, y, ylow, yhigh]でなければいけません。 もし error_type = xyerror_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_densityerror_type=boxesの時だけ有効です。

例:

水平エラーバー。

 
(%i1) draw2d(
        error_type = y,
        errors([[1,2,1], [3,5,3], [10,3,1], [17,6,2]]))$

figures/draw_errors

垂直および水平エラーバー。

 
(%i1) 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]]));

figures/draw_errors2

Categories:  Package draw

グラフィックオブジェクト: explicit  
    explicit (fcn,var,minval,maxval)  
    explicit (fcn,var1,minval1,maxval1,var2,minval2,maxval2)

(fcn,var1,minval1,maxval1,var2,minval2,maxval2) 2Dおよび3Dにて陽関数を描画します。

2D

explicit(fcn,var,minval,maxval)minvalから maxvalまで値を取る変数 varを伴う陽関数 fcnをプロットします。

このオブジェクトは以下のgraphic optionsに作用されます: nticks, adapt_depth, draw_realpart, line_width, line_type, key, filled_func, fill_color, color

例:

 
(%i1) draw2d(line_width = 3,
             color      = blue,
             explicit(x^2,x,-3,3) )$

figures/draw_explicit

 
(%i2) draw2d(fill_color  = brown,
             filled_func = true,
             explicit(x^2,x,-3,3) )$

figures/draw_explicit2

3D

explicit(fcn, var1, minval1, maxval1, var2, minval2, maxval2)minval1から maxval1まで値を取る変数 var1minval2から maxval2まで値を取る変数 var2を伴う陽関数 fcnをプロットします。

このオブジェクトは以下のグラフィックオプションの影響を受けます: draw_realpart, xu_grid, yv_grid, line_type, line_width, key, wired_surface, enhanced3d, color

例:

 
(%i1) 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)$

figures/draw_explicit3

埋められた関数に関しては filled_funcも参照してください。

Categories:  Package draw

グラフィックオブジェクト: image (im,x0,y0,width,height)

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 = graypalette = colorはそれぞれ、 palette = [3,3,3]palette = [7,5,15]へのショートカットです。

もし imが長さ 3のベクトルの行列か rgb pictureオブジェクトなら、それらは赤、緑、青の色成分として解釈されます。

例:

もし imが実数の行列なら、ピクセル値はグラフィックオプション paletteに従って解釈されます。

 
(%i1) im: apply(
           'matrix,
            makelist(makelist(random(200),i,1,30),i,1,30))$
(%i2) /* palette = color, default */
      draw2d(image(im,0,0,30,30))$

figures/draw_image

 
(%i3) draw2d(palette = gray, image(im,0,0,30,30))$

figures/draw_image2

 
(%i4) draw2d(palette = [15,20,-4],
             colorbox=false,
             image(im,0,0,30,30))$

figures/draw_image3

colorboxも参照してください。

もし imが長さ3のベクトルの行列なら、 それらは赤、緑、青の色成分として解釈されます。

 
(%i1) im: apply(
            'matrix,
             makelist(
               makelist([random(300),
                         random(300),
                         random(300)],i,1,30),i,1,30))$
(%i2) draw2d(image(im,0,0,30,30))$

figures/draw_image4

パッケージ drawは自動的にパッケージ pictureをロードします。 この例ではレベルピクチャオブジェクトを手動で組み立て、描画します。

 
(%i1) im: make_level_picture([45,87,2,134,204,16],3,2);
(%o1)       picture(level, 3, 2, {Array:  #(45 87 2 134 204 16)})
(%i2) /* default color palette */
      draw2d(image(im,0,0,30,30))$

figures/draw_image5

 
(%i3) /* gray palette */
      draw2d(palette = gray,
             image(im,0,0,30,30))$

figures/draw_image6

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
には更に丹念な例があります。

Categories:  Package draw

グラフィックオブジェクト: implicit  
    implicit (fcn,x,xmin,xmax,y,ymin,ymax)  
    implicit (fcn,x,xmin,xmax,y,ymin,ymax,z,zmin,zmax)

(fcn,x,xmin,xmax,y,ymin,ymax,z,zmin,zmax) 2Dおよび 3Dにて陰関数を描画します。

2D

implicit(fcn,x,xmin,xmax,y,ymin,ymax)xminから xmaxまでの値を取る変数 xyminから ymaxまでの値を取る変数 yを伴う fcnで定義された陰関数をプロットします。

このオブジェクトは以下のグラフィックオプションの影響を受けます: ip_grid, ip_grid_in, line_width, line_type, key, color.

例:

 
(%i1) draw2d(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" )$

figures/draw_implicit

3D

implicit (fcn,x,xmin,xmax, y,ymin,ymax, z,zmin,zmax)xminから xmaxまでの値を取る変数 xyminから ymaxまでの値を取る変数 yzminから zmaxまでの値を取る変数 zを伴う fcnで定義された陰表面をプロットします。 このオブジェクトはマーチングキューブアルゴリズムを実装します。

このオブジェクトは以下のグラフィックオプションの影響を受けます: x_voxel, y_voxel, z_voxel, line_width, line_type, key, wired_surface, enhanced3d, color

例:

 
(%i1) 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);

figures/draw_implicit2

Categories:  Package draw

グラフィックオブジェクト: label  
    label ([string,x,y],...)  
    label ([string,x,y,z],...)

2Dと 3D内でラベルを書きます。

色付けられたラベルは Gnuplot 4.3以上で機能します。 これはパッケージ drawに関して既知のバグです。

このオブジェクトは以下のグラフィックオプションの影響を受けます: label_alignment, label_orientation, color.

2D

label([string,x,y])は点 [x,y]stringを書きます。

例:

 
(%i1) 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])  )$

figures/draw_label

3D

label([string,x,y,z])は、 点[x,y,z]stringを書きます。

例:

 
(%i1) 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]) )$

figures/draw_label2

Categories:  Package draw

グラフィックオブジェクト: mesh (row_1,row_2,...)

3Dで四角形のメッシュを描画します。

3D

引数 row_i[[x_i1,y_i1,z_i1], ...,[x_in,y_in,z_in]]という形の n個の 3D 点のリストで、行すべては同じ長さです。 これらの点すべては 3Dでの任意の表面を定義し、ある意味 elevation_gridオブジェクトの一般化です。

このオブジェクトは以下のグラフィックオプションに作用されます: line_type, line_width, color, key, wired_surface, enhanced3d, transform

例:

簡単な例。

 
(%i1) draw3d(
         mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
              [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
              [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $

figures/draw_mesh

3Dで三角形をプロット。

 
(%i1) draw3d(
        line_width = 2,
        mesh([[1,0,0],[0,1,0]],
             [[0,0,1],[0,0,1]])) $

figures/draw_mesh2

2つの四角形。

 
(%i1) draw3d(
        surface_hide = true,
        line_width   = 3,
        color = red,
        mesh([[0,0,0], [0,1,0]],
             [[2,0,2], [2,2,2]]),
        color = blue,
        mesh([[0,0,2], [0,1,2]],
             [[2,0,4], [2,2,4]])) $

figures/draw_mesh3

Categories:  Package draw

グラフィックオブジェクト: parametric  
    parametric (xfun,yfun,par,parmin,parmax)  
    parametric (xfun,yfun,zfun,par,parmin,parmax)

2Dおよび 3Dにてパラメトリック関数を描画します。

このオブジェクトは以下のグラフィックオプションの影響を受けます: nticks, line_width, line_type, key, color, enhanced3d.

2D

コマンド parametric(xfun, yfun, par, parmin, parmax)parminから parmaxまで値を取るパラメータ parを伴う パラメトリック関数 [xfun, yfun]をプロットします。

例:

 
(%i1) 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))$

figures/draw_parametric

3D

parametric (xfun, yfun, zfun, par, parmin, parmax)parminから parmaxまで値を取るパラメータ parを伴うパラメトリック曲線 [xfun, yfun, zfun]をプロットします。

例:

 
(%i1) 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" )$

figures/draw_parametric2

Categories:  Package draw

グラフィックオブジェクト: parametric_surface (xfun, yfun, zfun, par1, par1min, par1max, par2, par2min, par2max)

3Dにおいてパラメトリックな表面を描画します。

3D

コマンド parametric_surface (xfun, yfun, zfun, par1, par1min, par1max, par2, par2min, par2max)par1minから par1maxまでを値として取るパラメータ par1par2minから par2maxまでを値として取るパラメータ par2を伴う パラメトリックな表面 [xfun, yfun, zfun]をプロットします。

このオブジェクトは以下のグラフィックオプションの影響を受けます: xu_grid, yv_grid, line_type, line_width, key, wired_surface, enhanced3d, color

例:

 
(%i1) 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) )$

figures/draw_parametric3

Categories:  Package draw

グラフィックオブジェクト: points  
    points ([[x1,y1], [x2,y2],...])  
    points ([x1,x2,...], [y1,y2,...])  
    points ([y1,y2,...])  
    points ([[x1,y1,z1], [x2,y2,z2],...])  
    points ([x1,x2,...], [y1,y2,...], [z1,z2,...])  
    points (matrix)  
    points (1d_y_array)  
    points (1d_x_array, 1d_y_array)  
    points (1d_x_array, 1d_y_array, 1d_z_array)  
    points (2d_xy_array)  
    points (2d_xyz_array)

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) 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]))$

figures/draw_points

衝撃を描画。

 
(%i1) draw2d(
        points_joined = impulses,
        line_width    = 2,
        color         = red,
        points(makelist([random(20),random(50)],k,1,10)))$

figures/draw_points2

座標の配列。

 
(%i1) a: make_array (flonum, 100) $
(%i2) for i:0 thru 99 do a[i]: random(1.0) $
(%i3) draw2d(points(a)) $

figures/draw_points3

分離した座標の 2つの配列。

 
(%i1) x: make_array (flonum, 100) $
(%i2) y: make_array (fixnum, 100) $
(%i3) for i:0 thru 99 do (
        x[i]: float(i/100),
        y[i]: random(10) ) $
(%i4) draw2d(points(x, y)) $

figures/draw_points4

2列 2D配列。

 
(%i1) xy: make_array(flonum, 100, 2) $
(%i2) for i:0 thru 99 do (
        xy[i, 0]: float(i/100),
        xy[i, 1]: random(10) ) $
(%i3) draw2d(points(xy)) $

figures/draw_points5

関数 read_arrayで埋められた配列の描画。

 
(%i1) a: make_array(flonum,100) $
(%i2) read_array (file_search ("pidigits.data"), a) $
(%i3) 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 (numericalio)$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) draw3d(title = "Daily average wind speeds",
             point_size = 2,
             points(args(submatrix (s2, 4, 5))) )$

3次元のサンプル2つ、

 
(%i1) load (numericalio)$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) 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) x: make_array (fixnum, 10) $
(%i2) y: make_array (fixnum, 10) $
(%i3) z: make_array (fixnum, 10) $
(%i4) for i:0 thru 9 do (
        x[i]: random(10),
        y[i]: random(10),
        z[i]: random(10) ) $
(%i5) draw3d(points(x,y,z)) $

figures/draw_points6

2次元色付け配列、

 
(%i1) xyz: make_array(fixnum, 10, 3) $
(%i2) for i:0 thru 9 do (
        xyz[i, 0]: random(10),
        xyz[i, 1]: random(10),
        xyz[i, 2]: random(10) ) $
(%i3) draw3d(
         enhanced3d = true,
         points_joined = true,
         points(xyz)) $

figures/draw_points7

ユーザーが明示的に指定した色数。

 
(%i1) pts: makelist([t,t^2,cos(t)], t, 0, 15)$
(%i2) col_num: makelist(k, k, 1, length(pts))$
(%i3) draw3d(
        enhanced3d = ['part(col_num,k),k],
        point_size = 3,
        point_type = filled_circle,
        points(pts))$

figures/draw_points8

Categories:  Package draw

グラフィックオブジェクト: polar (radius,ang,minang,maxang)

極座標で定義された2D関数を描画します。

2D

polar (radius,ang,minang,maxang)minangから maxangまで値を取る変数 angを伴う極座標で定義された関数 radius(ang)をプロットします。

このオブジェクトは以下のグラフィックオプションの影響を受けます: nticks, line_width, line_type, key, color.

例:

 
(%i1) 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) )$

figures/draw_polar

Categories:  Package draw

グラフィックオブジェクト: polygon  
    polygon ([[x1, y1], [x2, y2], …])  
    polygon ([x1, x2, …], [y1, y2, …])

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) 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]]) )$

figures/draw_polygon

Categories:  Package draw

グラフィックオブジェクト: quadrilateral (point_1, point_2, point_3, point_4)

四辺形を描画します。

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) draw2d(
        quadrilateral([1,1],[2,2],[3,-1],[2,-2]))$

figures/draw_quadrilateral

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.

Categories:  Package draw

グラフィックオブジェクト: rectangle ([x1,y1], [x2,y2])

2D内で長方形を描画します。

2D

rectangle ([x1,y1], [x2,y2])は、対角頂点 [x1,y1][x2,y2]を持つ長方形を描画します。

このオブジェクトは以下のグラフィックオプションの影響を受けます: transparent, fill_color, border, line_width, key, line_type, color.

例:

 
(%i1) 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] )$

figures/draw_rectangle

Categories:  Package draw

グラフィックオブジェクト: region (expr,var1,minval1,maxval1,var2,minval2,maxval2)

平面上に不等式で定義された領域を描画します。

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));

グラフィックオブジェクト: spherical (radius, azi, minazi, maxazi, zen, minzen, maxzen)

球座標で定義された3D関数を描画します。

3D

spherical(radius, azi, minazi, maxazi, zen, minzen, maxzen)minaziから maxaziまで値を取る 方位角 aziminzenから maxzenまで値を取る 天頂角 zenを伴う球座標で定義された関数 radius(azi, zen)を描画します。

このオブジェクトは以下のグラフィックオプションの影響を受けます: xu_grid, yv_grid, line_type, key, wired_surface, enhanced3d, color

例:

 
(%i1) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$

figures/draw_spherical

Categories:  Package draw

グラフィックオブジェクト: triangle (point_1, point_2, point_3)

三角形を描画します。

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) draw2d(
        triangle([1,1],[2,2],[3,-1]))$

figures/draw_triangle

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.

Categories:  Package draw

グラフィックオブジェクト: tube (xfun,yfun,zfun,rfun,p,pmin,pmax)

3Dにおいて径が変化する管を描画します。

3D

[xfun,yfun,zfun]pminから pmaxまで値を取るパラメータ pを伴うパラメトリックな曲線です。 パラメトリックな曲線上に中心を持ち、曲線と垂直な半径 rfunの円が置かれます。

このオブジェクトは以下のグラフィックオプションの影響を受けます: xu_grid, yv_grid, line_type, line_width, key, wired_surface, color, capping

例:

 
(%i1) draw3d(
        enhanced3d = true,
        xu_grid = 50,
        tube(cos(a), a, 0, cos(a/10)^2,
             a, 0, 4*%pi) )$

figures/draw_tube

Categories:  Package draw

グラフィックオブジェクト: vector  
    vector ([x,y], [dx,dy])  
    vector ([x,y,z], [dx,dy,dz])

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) 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]))$

figures/draw_vector

3D

vector([x,y,z], [dx,dy,dz])[x,y,z]を原点とするベクトル [dx,dy,dz]をプロットします。

例:

 
(%i1) 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)) )$

figures/draw_vector2

Categories:  Package draw


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

52.3 Functions and Variables for pictures

関数: get_pixel (pic,x,y)

ピクチャからピクセルを返します。 座標 xyは 0からそれぞれ width-1height-1までの範囲を取ります。

Categories:  Package draw

関数: make_level_picture  
    make_level_picture (data)  
    make_level_picture (data,width,height)

レベル pictureオブジェクトを返します。 make_level_picture (data)は行列 dataから pictureオブジェクトを作ります。 make_level_picture (data,width,height)は 数のリストからオブジェクトを作ります; この場合、 widthheight両方を与えなければいけません。

返された pictureオブジェクトは以下の4つの部分を含みます:

  1. シンボル level
  2. イメージの幅
  3. イメージの高さ
  4. 0から 255までの範囲のピクセルデータを持つ整数配列 引数 dataは 0から 255までの数のみを含まなければいけません; 負の数は 0に置き換えられ、 255よりも大きな数は 255に設定されます。

例:

行列からのレベルピクチャ。

 
(%i1) make_level_picture(matrix([3,2,5],[7,-9,3000]));
(%o1)         picture(level, 3, 2, {Array:  #(3 2 5 7 0 255)})

数値リストからのレベルピクチャ

 
(%i1) make_level_picture([-2,0,54,%pi],2,2);
(%o1)            picture(level, 2, 2, {Array:  #(0 0 54 3)})

Categories:  Package draw

関数: make_rgb_picture (redlevel,greenlevel,bluelevel)

rgb色付けされた pictureオブジェクトを返します。 3つ引数すべては赤、緑、青のレベルを持つレベルピクチャでなければいけません;

戻り値の pictureオブジェクトは以下の4つの部分を含みます:

  1. シンボル rgb
  2. イメージの幅
  3. イメージの高さ
  4. 0から 255までの範囲のピクセルデータを持つ長さ 3*width*heightの整数配列。 それぞれのピクセルは。3つの連続する数 (赤、緑、青)で表現されます。

例:

 
(%i1) red: make_level_picture(matrix([3,2],[7,260]));
(%o1)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
(%i2) green: make_level_picture(matrix([54,23],[73,-9]));
(%o2)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
(%i3) blue: make_level_picture(matrix([123,82],[45,32.5698]));
(%o3)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
(%i4) make_rgb_picture(red,green,blue);
(%o4) picture(rgb, 2, 2,
              {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})

Categories:  Package draw

関数: negative_picture (pic)

(levelまたはrgb)ピクチャの反転を返します。

Categories:  Package draw

関数: picture_equalp (x,y)

等しいピクチャの場合 trueを、そうでないなら falseを返します。

Categories:  Package draw · Predicate functions

関数: picturep (x)

もし引数が適正なイメージならtrueを、そうでないなら falseを返します。

Categories:  Package draw · Predicate functions

関数: read_xpm (xpm_file)

xpm形式のファイルを読み、ピクチャオブジェクトを返します。

Categories:  Package draw

関数: rgb2level (pic)

rgbピクチャを赤、緑、青チャンネルを平均することで levelの1つに変換します。

Categories:  Package draw

関数: take_channel (im,color)

もし引数 colorred, greenまたは blueなら、関数 take_channelはピクチャ imの対応する色チャンネルを返します。 例:

 
(%i1) red: make_level_picture(matrix([3,2],[7,260]));
(%o1)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
(%i2) green: make_level_picture(matrix([54,23],[73,-9]));
(%o2)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
(%i3) blue: make_level_picture(matrix([123,82],[45,32.5698]));
(%o3)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
(%i4) make_rgb_picture(red,green,blue);
(%o4) picture(rgb, 2, 2,
              {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})
(%i5) take_channel(%,'green);  /* simple quote!!! */
(%o5)           picture(level, 2, 2, {Array:  #(54 23 73 0)})

Categories:  Package draw


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

52.4 Functions and Variables for worldmap

このパッケージは自動的にパッケージ drawをロードします。


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

52.4.1 Variable and Functions

グローバル変数: boundaries_array

デフォルト値: false

boundaries_arrayはグラフィックオプション geomapが境界座標を探すところです。

boundaries_arrayのそれぞれの成分は浮動小数点量の配列であり、 多角形のセグメントかマップ境界の座標です。

geomapも参照してください。

Categories:  Package draw

関数: numbered_boundaries (nlist)

その数 (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)$

Categories:  Package draw

関数: make_poly_continent  
    make_poly_continent (continent_name)  
    make_poly_continent (country_list)

色付けられた大陸や国のリストを描画するのに必要なポリゴンを作ります。

例:

 
(%i1) load(worldmap)$
(%i2) /* A continent */
      make_poly_continent(Africa)$
(%i3) apply(draw2d, %)$

figures/worldmap_make_poly_continent

 
(%i4) /* A list of countries */
      make_poly_continent([Germany,Denmark,Poland])$
(%i5) apply(draw2d, %)$

figures/worldmap_make_poly_continent2

Categories:  Package draw

関数: make_poly_country (country_name)

色付けられた国を描画するのに必要なポリゴンを作ります。 もし島が存在するなら、 1つの国は複数のポリゴンで定義されることがあります。

例:

 
(%i1) load(worldmap)$
(%i2) make_poly_country(India)$
(%i3) apply(draw2d, %)$

figures/worldmap_make_poly_country

Categories:  Package draw

関数: make_polygon (nlist)

境界添字から polygonオブジェクトを返します。 引数 nlistboundaries_arrayの成分のリストです。

例:

ブータンは境界番号 171, 173, 1143で定義されます。 だから、 make_polygon([171,173,1143])は座標 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)$

figures/worldmap_make_polygon

Categories:  Package draw

関数: region_boundaries (x1,y1,x2,y2)

頂点 (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(%))$

figures/worldmap_region_boundaries

Categories:  Package draw

関数: region_boundaries_plus (x1,y1,x2,y2)

頂点 (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(%))$

figures/worldmap_region_boundaries_plus

Categories:  Package draw


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

52.4.2 Graphic objects

グラフィックオブジェクト: geomap  
    geomap (numlist)  
    geomap (numlist,3Dprojection)

2Dと 3Dに関して地図を描画します。

2D

この関数はグローバル変数 boundaries_arrayと一緒に機能します。

引数 numlistは数や数のリストを含むリストです。 これらすべての数は、グローバル配列 boundaries_arrayの成分を表す 0以上の整数でなければいけません。

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]))$

figures/worldmap_geomap

補助バッケージ worldmapはグローバル変数 boundaries_arrayを(経度、緯度)座標で実世界境界に設定します。 これらのデータはパブリックドメインであり、 https://web.archive.org/web/20100310124019/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)$

figures/worldmap_geomap2

パッケージ worldmapは国をポリゴンとしてプロットする時にも役に立ちます。 この場合、グラフィックオブジェクト geomapはもはや必要でなく、代わりに polygonオブジェクトが使われます。 配列ではなくリストが現在使われているので、地図レンダリングはより遅いでしょう。 以下のコードを理解するためには、 make_poly_countrymake_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)$

figures/worldmap_geomap3

3D

geomap (numlist)は地図境界を中心が (0,0,0)で半径 1の球上に射影します。 geomap (numlist,3Dprojection)を使うことで、 球や射影タイプを変えることが可能です。

利用可能な 3D射影:

更に丹念な例を見るには、 http://riotorto.users.sf.net/gnuplot/geomap も参照してください。

Categories:  Package draw


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

This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.