MATLAB Function Reference    
Figure Properties

プロパティの変更

ユーザは、2つの方法で、グラフィックオブジェクトプロパティを設定したり、引用できます。

プロパティのデフォルト値を変更するには、 デフォルトプロパティ値の設定を参照してください。

Figure プロパティの記述

この節は、プロパティ名とそれに設定できる値の一覧を表示しています。中括弧内にデフォルト値を示します。

Alphamap                     alpha値から構成される m 行 1 列の行列

Figure alphamap。 このプロパティは、NaNでないalpha値の m 行 1 列の配列です。MATLABは、行番号により、alpha値を受け入れます。たとえば、インデックス1は、最初のalpha値で、インデックス2は、2番目のalpha値、等々です。Alphamaps は、任意の長さになります。デフォルトの alphamapは、0から1まで線形に増加する 64 個の値を含んでいます。

Alphamaps は、surface, image, patchオブジェクトのレンダリングに影響を与えます。

BackingStore                 {on} | off

オフスクリーンピクセルバッファBackingStoreonのとき、MATLABは、オフスクリーンピクセルバッファにFigureウィンドウのコピーを格納します。Figureウィンドウの隠れた部分が現れるとき、MATLABはスクリーン上にオブジェクトを再生するのではなく、このバッファからウィンドウの内容をコピーします。これにより、スクリーン上への再描画処理が高速化されます。

スクリーンを速く更新することが一般的な要求である一方、要求されるバッ ファは多くのシステムメモリを消費します。メモリ制限が生じる場合は、 BackingStoreoffに設定することで、この機能を無効にしてバッファに使われているメモリを解除することができます。使用しているコンピュータがBackingStoreをサポートしていないときは、BackingStoreプロパティを設定しようとするとワーニングメッセージが出力されますが、他には何も影響ありません。

BackingStoreoffに設定すると、オフスクリーンバッファとFigureウィンドウの両方に描く必要がなくなるので、アニメーションを高速化することができます。

BusyAction                   cancel | {queue}

コールバックルーチンの割込みBusyActionプロパティを使って、実行中のコールバックルーチンに割込みを行うイベントの取り扱い方法を制御することができます。実行中のコールバックルーチンがあれば、続いて呼び込まれるコールバックルーチンは、常にそれを中断しようとします。コールバックを実行中のオブジェクトのInterruptibleプロパティがon(デフォルト)に設定されていれば、イベントキューが処理されるつぎの点で割込みが起こります。Interruptibleプロパティがoffならば、(実行中のコールバックをもつオブジェクトの)BusyActionプロパティは、MATLABがイベントを処理する方法を指定します。つぎのような選択があります。

ButtonDownFcn                文字列

マウスボタンを押したときのコールバック関数。ポインタがFigureウィンドウ内に存在し、子オブジェクト上(たとえばUicontrol, Axes, Axesの子オブジェクト)でないときにマウスボタンを押すときに、必ず実行されるコールバックルーチン。このルーチンには、正しいMATLAB表現またはM-ファイル名を文字列として定義してください。式は、MATLABワークスペース内で実行します。

Children                     ハンドル番号からなるベクトル

Figureの子オブジェクト。Figure内に表示されているすべてのaxes, uicontrol, uicontextmenu, uimenu オブジェクトのハンドル番号を含むベクトルです。ハンドル番号の順序を変更することができ、それによって、ディスプレイ上のオブジェクトのスタックの順序が変わります 。

Clipping                     {on} | off

このプロパティは、Figure上には何も影響を与えません。

CloseRequestFcn              文字列

Figureを閉じるときに実行されるコールバック。このプロパティは、closeコマンド(close(figure_handle)close all)が読み込まれたときはいつも、また、コンピュータのウィンドウマネージャのメニューによってFigureを閉じるときに、常にMATLABが実行するコールバックルーチンを定義します。

このプロパティは、Figureウィンドウを閉じる間に生じるメカニズムを提供 します。たとえば、ダイアログボックスを表示して、ユーザがクローズ操作 を実行するかキャンセルするかを尋ねたり、ユーザがGUIを含むFigureをクローズするのを防ぐことができます。

基本的なメカニズムは、

このステートメントは、ウィンドウを破壊して、カレントのFigureを消去します。closereqは、closeコマンドがクローズ要求関数を呼び出す前に、引数として指定されたすべてのFigureをカレントのFigureとすることを利用します。

CloseRequestFcnは、M-ファイル名を含む有効なMATLABステートメン トである任意の文字列に設定できます。たとえば、つぎのようになります。

このクローズ要求関数は、Figureウィンドウをクローズしません。単に、コマンドラインに"This window is immortal"と表示します。クローズ要求関数がdeleteを呼び出さなくても、MATLABはFigureをクローズしません(非破壊クローズ要求関数を使ってウィンドウを作成すると、コマンドラインから、常にdelete(figure_handleを読み込むことができます)。

クローズ要求関数のより有効な応用は、クローズ操作を実行するかどうかを ユーザに尋ねる、質問ダイアログボックスを表示することです。つ ぎのM-ファイルは、この使用法を記述しています。

このM-ファイルをFigureのCloseRequestFcnに割り当てます。

このM-ファイルをデフォルトのクローズ要求関数にするために、Rootレベルでデフォルト値を設定します。

MATLABは、この後に作成するすべてのFigureのCloseRequestFcnに対して、この設定を使用します。

Color                        ColorSpec

バックグランドカラー。このプロパティは、Figureウィンドウのバックグラ ンドカラーを制御します。RGB値の3要素ベクトルやMATLABの既定の名前を使って、カラーを指定することができます。詳細は、ColorSpecのリファレンスページを参照してください。

Colormap                     RGB値からなるm行3列行列

Figureのカラーマップ。このプロパティは、m個のカラーを個々に定義する、赤、緑、青の強度値からなるm行3列の配列です。MATLABは、行番号で各カラーにアクセスします。たとえば、インデックス1は最初のRGBの3要素を、インデックス2は2番目のRGBの3要素を指定します。カラーマップの長さは任意(MS-WindowsとMacintosh上では256まで)ですが、3列でなければなりません。デフォルトのFigureのカラーマップは、既定の64色を含んでいます。

カラーマップは、 Surface, Image, Patchなどのオブジェクトの描画に影響を与 えますが、一般には他のグラフィックスオブジェクトには影響を与えません。 詳細な情報については、colormap およびColorSpecのリファレンスページを参照してください。

CreateFcn                    文字列

オブジェクトの作成中に実行されるコールバックルーチン。このプロパティ は、MATLABがFigureオブジェクトを作成するときに実行するコールバックルーチンを定義します。このプロパティは、Figureのデフォルト値として定義しなければなりません。たとえば、つぎのステートメント、

は、作成されるFigureが整数でないハンドル番号を使うように、 Rootレベルでデフォルト値を定義します。MATLABは、Figureに対するすべてのプロパティを設定した後で、このルーチンを実行します。このプロパティを既存のFigureオブジェクトに対して設定しても、影響はありません。

CreateFcnを実行しているオブジェクトのハンドル番号は、ルートのCallbackObject プロパティによってのみアクセスが可能です。このプロパティは、gcboを使って確認できます。

CurrentAxes                  カレントAxesのハンドル番号

Figure内のターゲットAxes。MATLABは、このプロパティをFigureのカレントAxesのハンドル番号(つまり、このFigureがカレントFigureのときに、コマンドgcaによって出力されるハンドル番号)に設定します。Axesオブジェクトの子オブジェクトが存在するFigureには、常にカレントのAxesがあります。カレントのAxesは、最も上層のaxesでなくても構いません。Axesを CurrentAxesになるように設定しても、他のすべてのAxesの上には再スタックしません。

axesコマンドやsetコマンドを使って、あるAxesをカレントにすることができます。たとえば、axes(axes_handle)やset(gcf,'CurrentAxes',axes_handle)は、ハンドル番号axes_handleで識別されるAxesをカレントのAxesとします。さらに、 axes(axes_handle)は、AxesをFigure内の他のすべてのAxesの上に再スタックします。

Figure内にAxesが含まれていない場合、get(gcf,'CurrentAxes')は空行列を出力します。関数gca は、Axesが存在しなければ実際に作成することに、注意してください。

CurrentCharacter             単一キャラクタ(参照のみ)

最後に押されたキー。MATLABは、このプロパティをFigureウィンドウ内で最後に押されたキーに設定します。 CurrentCharacterは、ユーザ入力を取り出すために有効です。

CurrentMenu                  (廃止されました)

このプロパティは、参照されるとワーニングメッセージを表示します。これは、ルートの CallbackObjectプロパティに替わりました。

CurrentObject                オブジェクトのハンドル番号

カレントオブジェクトのハンドル番号。MATLABは、このプロパティをカレントオブジェクトのハンドル番号に設定します(CurrentPointプロパティを参照してください)。これは、スタック順序が最前のオブジェクトです。 このプロパティは、ユーザが選択したオブジェクトを決定するために使えます。関数gcoは、CurrentFigureCurrentObjectを取得する便利な方法です。

CurrentPoint                 2要素ベクトル: [x座標 y座標]

Figure内で最後にマウスボタンをクリックした位置。 MATLABは、このプロパティを最後にマウスボタンを押したときのポインタの位置に設定します。 MATLABは、ポインタがFigureウィンドウ内にあるときにマウスボタンがクリックされると、このプロパティを更新します。

さらに、MATLABは、FigureのWindowButtonMotionFcnWindowButtonUpFcnプロパティに対して定義されたコールバックルーチンを実行する前に、CurrentPointを更新します。これにより、これらのコールバックルーチンからCurrentPointを参照できます。つぎのように行います。

FigureのCurrentPointは、前に説明した通り、イベントが生じるときにのみ更新されます。(WindowButtonMotionFcnが実行に時間がかかったり、ポインタが非常に大きく移動されたときのような)状況では、 CurrentPointは、ポインタの実際の位置を反映しないかもしれませんが、WindowButtonMotionFcn が実行を開始したときの位置に影響を与えることがあります。

CurrentPoint は、Unitsプロパティに設定されている単位を使って、Figure ウィンドウの左下隅から測定されます。

ルートのPointerLocationプロパティは、ポインタの移動と同時に更新されたポインタの位置を含んでいます。しかし、位置はFigureウィンドウではなく、スクリーンに対して測定されます。

uicontrolオブジェクトの上をクリックしたとき、このプロパティが、どのように設定されているかの情報については、uicontrol を参照してください。

DeleteFcn                    文字列

Figureを削除するときのコールバックルーチン。Figureオブジェクトが削除される(たとえば、deletecloseコマンドが実行される)ときに実行するコールバックルーチン。MATLABは、オブジェクトのプロパティを壊す前に、このルーチンを実行するので、オブジェクトの値をコールバックルーチンで利用することができます。

DeleteFcnを実行しているオブジェクトのハンドル番号は、ルートのCallbackObjectプロパティによってのみアクセスが可能です。このプロパティは、gcboを使って確認できます。

Dithermap                    RGB値からなるn行3列行列

擬似カラー表示のトゥルーカラーデータで使われるカラーマップ。このプロパティは、擬似カラー(8-ビット以下)ディスプレイ上の表示に対して、MATLABがトゥルーカラーCDataをディザリングするために使うカラーマップを定義します。MATLABは、トゥルーカラーCDataとして定義される各RGBカラーを、ディザーマップ内の最も近いカラーに写像します。デフォルトのDithermapは、十分なスペクトルを表現するカラーを含んでいるので、どんなカラー値でもそれなりに写像されます。

しかし、トゥルーカラーデータが1つのカラーの中で広範囲の色調を含んでいるなら、ユーザ独自のディザーマップを設定した方がよい結果を得られるかもしれません。DithermapModeプロパティを参照してください。

DithermapMode                auto | {manual}

ディザーマップの生成manualモードでは、MATLABは、擬似カラーディスプレイ上に直接にカラーを表示するために、Dithermapプロパティで定義されたカラーマップを使います。DithermapModeautoのとき、MATLABは、現在表示されているカラーに基づいてディザーマップを生成します。これは、デフォルトのディザーマップで満足する結果を得られないときに有効です。

ディザーマップを生成する過程は、かなりの時間が消費され、MATLABがディスプレイを再描画する度に(たとえば、新たにオブジェクトを加えたり、ウィンドウのサイズを変更したときに)繰り返されます。このプロパティをmanualに戻して、生成されたディザーマップ(MATLABがDithermapプロパティにロードしたもの)を保存することで、不必要な再生を回避することができます。

DoubleBuffer                 on | {off}

簡単なアニメーション用のFlash-free レンダリング。 ダブルバッファリングは、実際のピクセルバッファに描画する過程です。そして、描画が完成すると、バッファの内容をスクリーンに作成します。ダブルバッファリングは、一般に簡単なアニメーションに対して、flash freeのレンダリングをします(多くの多角形を含むオブジェクトに対しては、そのラインを含む)。アミメーションされるオブジェクトのEraseModeプロパティをnormalに設定します。コマンドsetを使って、ダブルバッファリングを行ないます。

ダブルバッファリングは、フィギュアのRendererプロパティをpaintersに設定したときのみ機能します。

FileName                     文字列

GUI M-ファイル。 このプロパティは、作成されたM-ファイルの名前をストアするために、GUIDEで使われます。

FixedColors                  RGB値からなるm行3列行列(参照のみ)

カラーマップにないカラー。Figureのカラーマップから得られないカラーをFigureウィンドウ内に表現するために、固定カラーを定義します。これには、軸やラベルの他、Line, Text, Uicontrol,Uimenuなどのオブジェクトのカラーや、明示的に定義される任意のカラーが含まれます。たとえば、つぎのようなステートメントで定義されるものです。

固定カラーの定義は、システムのカラーテーブル内にあって、Figureのカラーマップにないものです。このため、固定カラーの色数にFigureのカラーマップのエントリ数を加えて、使用しているシステムの最大色数を超える場合、固定カラーは同時に表示される色数を制限します。

(システム上でサポートされる全色数の決定については、ルートのScreenDepthプロパティを参照してください。MATLABがアプリケーション間の色分けをどのように行っているかは、MinColorMapおよびShareColors プロパティを参照してください)。

HandleVisibility             {on} | callback | off

コマンドラインユーザとGUIによるオブジェクトのハンドルへのアクセスの制御。 このプロパティは、オブジェクトのハンドルが、その子オブジェクトの親のリスト内で視覚可能であるときに指定します。このプロパティは、(ダイアログボックスのような)ユーザインタフェースデバイスのみを含んでいるFigure内に、コマンドラインから誤って書き込むことや削除することを防ぐために有効です。

HandleVisibilityonのときは、ハンドルは常に見える状態です。

HandleVisibilitycallback に設定すると、ハンドルは、コールバックルーチンの中から、またはコールバックにより起動される関数からは可視化されますが、コマンドラインから起動される関数の中からは可視化されません。これは、コマンドラインユーザがGUIを保護しながら、コールバックルーチンがオブジェクトのハンドルに完全にアクセスできるようにするために提供されています。

HandleVisibilityoffに設定すると、常にハンドルは視覚不可能になります。これは、コールバックルーチンが、GUI(ユーザがタイプした文字列の評価のような)を傷つける可能性がある関数を呼び込み、その関数の実行中にハンドルを一時的に隠すときに必要です。

ハンドルが子オブジェクトの親のリスト内で視覚不可能のとき、オブジェクトの階層を検索したり、ハンドルのプロパティを確認してハンドルを取得する関数は、ハンドル番号を出力しません。これらの関数には、get, findobj, gca, gcf, gco, newplot, cla, clf, closeが含まれます。

ハンドルの視覚状態がcallbackoffを使って制限されているとき、オブジェクトのハンドルは、その親のChildren プロパティには現れません。Figureは、ルートのCurrentFigureプロパティに現れず、オブジェクトは、ルートのCallbackObjectプロパティ、または、FigureのCurrentObjectプロパティに現れません。そして、Axesは、親オブジェクトのCurrentAxesロパティに現れません。

ルートの ShowHiddenHandles プロパティをonに設定すると、それらのHandleVisibilityの設定(これは、HandleVisibilityプロパティの値に影響を与えません)に拘わらず、すべてのハンドルを視覚可能にできます。

隠されているハンドル番号も、まだ有効です。オブジェクトのハンドルが分かっていると、そのプロパティを関数setgetで設定し、ハンドルを取り扱う関数に渡すことができます。

HitTest                      {on} | off

マウスクリックによる選択HitTestは、Figure上でのマウスクリックの結果、Figureがカレントのオブジェクト(gcoコマンドとFigureのCurrentObject プロパティにより出力される)になり得るかどうかを指定します。HiTestoffならば、Figureをクリックすると、CurrentObject を空行列に設定します。

IntegerHandle                {on} | off

Figureのハンドル番号モード。Figureオブジェクトのハンドル番号は、デフォルトでは整数です。新たなFigureを作成するとき、MATLABは、既存のFigureに使われていない最小の整数を使います。Figureを削除すると、その整数のハンドル番号を再度使うことができます。

このプロパティをoffに設定すると、MATLABは、再度使うことのできない実数値(たとえば、67.0001221)のハンドル番号を整数の代わりに割り当てます。これは、ダイアログボックスのために設計された機能で、ハンドル番号に整数でない値を割り当てることで、ダイアログボックスへ不注意に描画することが軽減されます。

Interruptible                {on} | off

コールバックルーチンの中断モードInterruptibleプロパティは、Figureのコールバックルーチンが、連続的に呼び込まれるコールバックルーチンによって、中断されるかどうかを制御します。ButtonDownFcn, KeyPressFcn, WindowButtonDownFcn, WindowButtonMotionFcn,WindowButtonUpFcnに対して定義されるコールバックルーチンだけが、 Interruptibleプロパティにより影響を受けます。MATLABは、ルーチン内で drawnow, figure, getframe, pause コマンドが実行されるときのみ、コールバックルーチンを中断できるイベントを確認します。関連情報については、BusyActionプロパティを参照してください。

InvertHardcopy               {on} | off

白のバックグランドと黒のオブジェクトにハードコピーを変更。このプロパティは、プリント出力だけに影響を与えます。バックグランドが白以外のカラー(Color プロパティ)のFigureをプリント出力すると、グラフィックスオブジェクトとFigureのバックグランドとのコントラストが貧弱な出力結果となり、また、プリンタのトナーの消費も多くなります。

InvertHardCopyonのとき、FigureとAxesの色を白に、軸、目盛り、軸ラベルなどのカラーを黒に変更することで、MATLABはプリント出力効果を高めます。 Lines, TextPatchesSurfaces のエッジは、指定されたprintコマンドのオプションによって変わることがあります。

InvertHardCopyoffに設定すると、プリント出力はスクリーン上に表示されたカラーで行われます。

MATLABのFigureのプリント出力に関する詳細な情報については、 print のリファレンスページを参照してください。

KeyPressFcn                  文字列

キーを押したときのコールバック関数。Figureウィンドウ内でキーが押されたときに呼び出されるコールバックルーチン。KeyPressFcnには、任意のMATLAB表現やM-ファイル名を定義することができます。

コールバックルーチンは、何か特定のキーが押されたことを確認するために、FigureのCurrentCharacterプロパティを参照し、それによってコールバックの実行を指定のキーに制限します。

コールバックルーチンは、また、どのFigure内でキーが押されたかを、RootオブジェクトのPointerWindowプロパティで確認します。ポインタがある特定のFigure内にあるときにキーを押しても、そのFigureはカレントFigure(つまり、gcf コマンドで参照されるFigure)にはならないことに注意してください。

MenuBar                      none | {figure}

Figureのメニューバーを視覚可能/不可能にする。このプロパティで、Figureウィンドウの上部にあるメニューバーを表示したり、隠したりすることができます。デフォルト(figure)は、メニューバーを表示します。

このプロパティは、組み込みメニューのみに影響します。uimenuを使って定義されたメニューは、このプロパティの影響を受けません。

MinColormap                  スカラ(デフォルト= 64)

使用するカラーテーブルのエントリの最小数。このプロパティは、Figureに対して定義されるカラーマップを格納するためにMATLABが使用するシステムのカラーテーブルのエントリの最小数を指定します(ColorMapプロパティを参照してください)。ある状況では、適切な色を使用するために、この値を大きくする必要があります。

たとえば、MATLABの他にもカラー強度アプリケーションを起動していて、大きなカラーマップ(たとえば、150色から200色)を定義していると仮定します。MATLABは近い色を選択するかもしれませんが、ユーザが指定するすべての色を定義するために十分なスロットがないので、正確ではない色をシステムのカラーテーブル内の既存の色から取り出します。

Figureのカラーマップに定義する色をMATLABが確実に使うためには、MinColorMapをカラーマップの長さに等しく設定してください。

MinColorMapの値を大きくするほど、他のウィンドウ(他のMATLABのFigureウィンドウを含みます)のカラー表示が不正確になるので注意してください。

Name                         文字列

Figureウィンドウのタイトル。このプロパティは、Figureウィンドウに表示 されるタイトルを指定します。デフォルトでは、Nameは空配列で、Figureのタイトルは、Figure No. 1, Figure No. 2のように表示されます。このパラメータを文字列に設定すると、Figureのタイトルは、Figure No. 1: <string>となります。NumberTitleプロパティを参照してください。

NextPlot                     {add} | replace | replacechildren

つぎのプロットの追加方法NextPlotは、グラフィックス出力を表示するためにMATLABが使うFigureを決定します。カレントFigureの値によって、つぎのように異なります。

関数newplotを使って、NextPlotプロパティを簡単に取り扱うことができます。AxesのNextPlotプロパティとUsing MATLAB Graphicsも参照してください。

NumberTitle                  {on} | off

Figureウィンドウのタイトル番号。 このプロパティは、文字列Figure No. N (NはFigure番号)をFigureウィンドウタイトルのはじめに表示するかどうかを決定します。Name プロパティを参照してください。

PaperOrientation             {portrait} | landscape

縦長または横長の用紙方向。 このプロパティは、紙面上にどの方向でFigureをプリント出力するかを決定します。portraitは紙面の長い方を縦軸に、landscapeは紙面の長い方を横軸に取ります。詳細は、 orient コマンドを参照してください。

PaperPosition                4要素のベクトル

紙面上のプリント出力位置。 紙面上にプリント出力するFigureの位置を決める長方形。つぎのような形式のベクトルを使って、この長方形を指定してください。

ここで、 left で紙面の左端から長方形の左端までの距離を、bottomで紙面の下部から長方形の下部までの距離を指定します。これらの距離で、長方形の左下隅を定義します。 widthheightは、長方形の大きさを定義します。 PaperUnitsプロパティは、この長方形を定義するために使う単位を指定します。

PaperPositionMode            auto | {manual}

FigureのWYSIWYGプリント出力manualモードでは、MATLABは PaperPositionプロパティで指定された値を使います。autoモードでは、紙面中央に、コンピュータスクリーン上のFigureと同じサイズでプリント出力します。

PaperSize                    [width height](参照のみ)

用紙サイズ。このプロパティは、PaperUnitsで測定されたカレントの PaperTypeのサイズを含んでいます。標準の用紙サイズの選択については、 PaperTypeを参照してください。

PaperType                    つぎの表の値から選択

標準の用紙サイズの選択。このプロパティは、PaperSizeをつぎの標準サイズの中の1つに設定します。これらのサイズは、つぎの通りです。

プロパティ値
Size (Width x Height)
usletter (default)
8.5-by-11 inches
uslegal
11-by-14 inches
tabloid
11-by-17 inches
A0
841-by-1189mm
A1
594-by-841mm
A2
420-by-594mm
A3
297-by-420mm
A4
210-by-297mm
A5
148-by-210mm
B0
1029-by-1456mm
B1
728-by-1028mm
B2
514-by-728mm
B3
364-by-514mm
B4
257-by-364mm
B5
182-by-257mm
arch-A
9-by-12 inches
arch-B
12-by-18 inches
arch-C
18-by-24 inches
arch-D
24-by-36 inches
arch-E
36-by-48 inches
A
8.5-by-11 inches
B
11-by-17 inches
C
17-by-22 inches
D
22-by-34 inches
E
34-by-43 inches

新規の用紙サイズ上で印刷するFigureを適切に配置するためには、PaperPositionプロパティを変更する必要があることに注意してください。解決法の1つは、正規化されたPaperUnitsを使用することで、これは用紙サイズに拘わらず、Figureを印刷されたページと自動的に同じ大きさにします。

PaperUnits                   normalized | {inches} | centimeters |points
                             

ハードコピーの測定の単位。このプロパティは、PaperPositionPaperSizeプロパティを定義するために使う単位を指定します。どの単位でも、紙面の左下隅から測定されます。normalized は、紙面の左下隅を(0,0)、右上隅を(1.0,1.0)と仮定します。inches, centimeters, pointsは絶対的な単位です(1ポイントは1/72インチに等価です)。

PaperUnitsの値を変更したときは、PaperUnits がデフォルト値に設定されていることを仮定している他の関数に影響を与えないように、計算が完了した後でデフォルト値に戻しておくことをお奨めします。

Parent                       ハンドル番号

Figureの親オブジェクトのハンドル番号。Figureオブジェクトの親オブジェクトは、Rootオブジェクトです。Root のハンドル番号は、常に0です。

Pointer                      crosshair | {arrow} | watch | topl |
                             topr | botl | botr | circle | cross |
                             fleur | left | right | top | bottom |
                             fullcrosshair | ibeam | custom

ポインタ記号の選択。このプロパティは、Figureウィンドウ内のポインタ(カーソル)の位置を示すために使われる記号を決定します。Pointercustomに設定すると、ユーザ自身のポインタ記号を定義することができます。詳細は、PointerShapeCDataプロパティを参照してください。Using MATLAB Graphicsマニュアルも参照してください。

PointerShapeCData            16行16列の行列

ユーザ定義のポインタ。このプロパティは、Pointerプロパティをcustomに設定したときに使われるポインタを定義します。これは、16行16列の行列で、つぎの値を使って16行16列のピクセルのポインタを定義します。

PointerShapeCData行列の(1,1)要素は、ポインタの左上隅に対応します。 Pointerプロパティを既定のポインタ記号の中の1つに設定しても、PointerShapeCDataの値は変更されません。32行32列のピクセルポイントをサポートしているコンピュータシステムでは、使えるピクセルマップは4分の1だけです。

PointerShapeHotSpot          2要素ベクトル

ポインタのアクティブ領域。ポインタの位置を示すピクセルを定義する PointerShapeCData行列内の、行と列のインデックスを指定する2要素ベクトル。この位置は、CurrentPointプロパティとRootオブジェクトのPointerLocationプロパティに含まれます。デフォルト値は(1,1)要素で、これは左上隅に相当します。

Position                     4要素ベクトル

Figureの位置。このプロパティは、Figureウィンドウのスクリーン上でのサイズと位置を指定します。つぎの形式の4要素ベクトルを使って長方形の位置を指定します。

ここで、 leftbottomは、スクリーンの左下隅からFigureウィンドウの左下隅までの距離を定義します。 widthheightは、ウィンドウの大きさを定義します。この指定で使われる単位についての情報は、Units プロパティを参照してください。leftbottom の要素は、複数のモニタをもつシステム上では負の値でも構いません。

このプロパティを取り出したり、Figureの位置を決めるためには関数getを、 Figureをリサイズしたり、新たな位置に移動したりするためには関数set を使うことができます。

Renderer                     painters | zbuffer |OpenGL

スクリーンとプリント出力で使われるレンダリング手法 。このプロパティで、MATLABグラフィックスを描写するために使う手法を選択することができます。つぎの中から選択できます。

OpenGL レンダラを使って

ハードウエアとソフトウエアでのOpenGLの実現

OpenGLの実現には、ハードウエアとソフトウエアの2種類があります。

ハードウエアによる実現は、性能の向上のために特殊なグラフィックスハードウエアを使用し、そのためソフトウエア版よりも非常に高速です。多くのコンピュータでは、この特殊なハードウエアがオプションとして使用可能であるか、これらのハードウエアと共に出荷されています。

ソフトウエアによる実現は、MATLAB version 5.0で使用可能であるZbufferとよく似ていますが、OpenGLは一般的にZbufferよりも優れた機能を提供します。

OpenGLの使用

OpenGLは、VMSを除くMATLABが稼動するすべてのコンピュータで使用可能です。MATLABは、OpenGLが使用可能ならば、そのバージョンを自動的に調べます。ハードウエアバージョンが使用不可能ならば、MATLABはソフトウエアバージョンを使用します。

プラットフォーム別に使用可能なソフトウエアバージョンは、つぎの通りです。

テストされているハードウエアバージョン

MS-Windowsプラットフォームでは、OpenGLを高速化する多くのグラフィックスボードがあります。MathWorksは、AccelGraphicsのAccelECLIPSEボード上でMATLABをテストしました。

UNIXプラットフォームでは、MathWorksは、Creator 3DボードをもつSparc Ultraと、IRIX 6.4以降が稼動しているSilicon Graphicsコンピュータ上でMATLABをテストしました。

使用しているバージョンの調べ方

ユーザのシステム上でMATLABが使用しているOpenGLライブラリのバージョンおよびベンダーを調べるためには、MATLABプロンプトで、つぎのようにタイプしてください。

このコマンドは、MATLABが使用している固有のライブラリで使用可能なOpenGLの拡張子からなる文字列を出力します。この情報は、MathWorksにとって役立ちますので、バグレポートの際には付け加えてください。

OpenGLと他のMATLABレンダラ

OpenGLと他のレンダラを使用して作成された図には、違いがあります。OpenGLに固有のものは以下の通りです。

サポートされていない挙動を要求した場合には、ワーニングメッセージが出力されます。

TMWがテストしたOpenGL

つぎのハードウエアバージョンがテストされています。

つぎのソフトウエアバージョンがテストされています。

RendererMode                 {auto} | manual

Rendererの自動選択、または、ユーザ選択 。このプロパティは、MATLABが、figureウィンドウの内容に基づいてRendererを選択するか、Rendererを変更しないかを指定することができます。

RendererModeプロパティが autoに設定されているとき、MATLABはFigure内のグラフィックスオブジェクトのサイズと複雑さに基づいて、スクリーン表示用とプリント出力のためのレンダリング手法を選択します。

プリント出力に対して、zbufferによるFigureからのプリント出力は、paintersのレンダリング手法を使うよりもかなり遅く、結果として大きなPostScriptファイルとなるので、スクリーンのレンダリングよりも複雑な場合には、MATLABはzbufferにスイッチします。しかし、出力は常にスクリーン上と一致しています。OpenGLに対しても同じことが言え、出力はZbufferレンダラで作成したのと同じです。これは、printコマンドの-rオプションによって指定された解像度をもつビットマップです

OpenGL レンダラの自動選択に関する規範

RendererModeプロパティをautoと設定すると、MATLABは、つぎの規範を使って、OpenGLレンダラを選択するかを決定します。

RendererModeプロパティをmanualに設定すると、MATLAB は、フィギュアの内容の変更に関わらず、Rendererを変更しません。

Resize                       {on} | off

ウィンドウのリサイズモード。このプロパティは、マウスを使ってFigureウィンドウをリサイズできるかどうかを決定します。 onならばウィンドウのリサイズが可能です。 offならばできません。Resizeoffのとき、Figureウィンドウは、リサイズが可能でないことを示す表示(Figureの隅のボックスのような)はありません。

ResizeFcn                    文字列

ウィンドウをリサイズするときのコールバックルーチン。MATLABは、Figureウィンドウをリサイズするときに、指定されたコールバックルーチンを実行します。Figureウィンドウの新規のサイズと位置を指定するために、FigureのPositionプロパティを参照できます。コールバックルーチンの実行中に、リサイズされたFigureのハンドルは、ルートの CallbackObject プロパティによってのみアクセスが可能です。これは、gcboを使って参照できます。

ResizeFcnを使って、MATLABのPosition/Unitsで直接サポートされていないGUIのレイアウトを保持することができます。

たとえば、高さが一定で、Figureの一番上に配置されており、Figureの幅と常に一致するオブジェクトをもつGUIレイアウトについて考えます。つぎに示すResizeFcnは、以下の操作を行います。Tag'StatusBar' で、高さが20ピクセルのUicontrol をFigureと同じ幅に保持し、Figureの一番上に配置します。Uicontrolのハンドル番号を取得するためにTagプロパティを使用することと、Figureのハンドル番号を取得するために関数gcboを使用することに注意してください。FigureのUnitsに関するdefensiveなプログラミングに注意してください。ここで、コールバックは、正確に動作するためにピクセル単位であることが必要で、以前の値を後でリストアします。

ResizeFcnのコールバック内からFigureのPositionを変更できますが、結果として ResizeFcnは再度呼び出されません。

PaperPositionModeプロパティが manualに設定され、関数resizeを定義した場合には、printコマンドはResizeFcnを呼び出すことに注意してください。printコマンドによって関数resizeを呼び出したくない場合は、PaperPositionModeautoに設定してください。

Selected                     on | off

オブジェクトの選択状態。このプロパティは、Figureが選択されているかどうかを示します。たとえば、ButtonDownFcnでこのプロパティを設定するように定義すると、マウスを使ってオブジェクトを選択することができます。

SelectionHighlight           {on} | off

Figureは選択状態を示しません。

SelectionType                {normal} | extend | alt | open
                             (参照のみ)

マウスの選択タイプ。MATLABは、Figureウィンドウ内で最後にマウスボタンが押されたときの情報を提供するために、このプロパティを使います。この情報は、行われた選択のタイプを示します。選択タイプは、ユーザインタフェースソフトウェアからの特定の応答に一般的に関連するアクションです(たとえば、グラフィックスオブジェクトを1回クリックすると、移動モードあるいはリサイズモードにする、ファイル名をダブルクリックするとそのファイルを開くなど)。

これらの選択で要求される物理的なアクションは、プラットフォームによって異なります。しかし、どのプラットフォーム上にもすべての選択タイプが存在します。

選択タイプ
MS-Windows
X-Windows
Normal
左マウスボタンをクリック
左マウスボタンをクリック
Extend
Shiftキーを押しながらマウスボタンをクリック、または
左右のマウスボタンを同時にクリック
Shiftキーを押しながら左マウスボタンをクリック、または
中央のマウスボタンをクリック
Alternate
Controlキーを押しながら左マウスボタンをクリック、または右マウスボタンをクリック
Controlキーを押しながら左マウスボタンをクリック
、または
右ボタンをクリック
Open
任意のマウスボタンをダブルクリック
任意のマウスボタンをダブルクリック

UicontrolsListBox のスタイルは、1回のマウスクリックを示すためにはFigureのSelectionTypeプロパティをnormalに、ダブルクリックを示すためにはopenに設定することに注意してください。

ShareColors                  {on} | off

カラーマップストレージモード。 このプロパティは、MATLABがシステムのカラーテーブルにFigureカラーマップを格納する方法に影響を与えます。デフォルトでは、MATLABは既定の色を見て、ピクセルカラーを割り当てるためにそれらのスロットを使います。これにより、カラーリソース(256色以下の表示機能のシステム上で制限されます)は効率よく使われ、同時に正しい色で表示できるFigureウィンドウの数を多くすることができます。

しかし、表示されているグラフィックスオブジェクトを再描画させずに、速くFigureのカラーマップを変更したい場合、色の分配をするべきではありません(ShareColorsoffに設定してください)。この場合、最初のカラーマップに対して使われるシステムのカラーテーブル内のすべてのスロットが、2番目のカラーマップ内の対応する色で置き換えられるので、MATLABは、ピクセルカラーの割り当てを変更しないで、別のカラーマップと入れ替えることができます(カラーマップが同じ長さで、コンピュータハードウェアのシステムカラーテーブルをユーザが修正できる場合に限り、適用されることに注意してください)。

Tag                          文字列

ユーザ指定のオブジェクトラベルTagプロパティは、ユーザ設定のラベルをもつグラフィックスオブジェクトを識別する方法を与えます。これは、オブジェクトのハンドル番号をグローバル変数として定義したり、コールバックルーチン間の引数としてそれらを受け渡したりする必要がある対話型のグラフィックスプログラムを構築するときに、特に有効です。

たとえば、カレントのFigureを変更するようなアクションにも拘わらず、特定のFigureにM-ファイルからのすべてのグラフィックス出力を直接に行うことを仮定します。そのために、Tagを使ってFigureを確認します。

このとき、findobjTagを検索し描画する前に、そのFigureをカレントにします。

Type                         文字列(参照のみ)

オブジェクトのクラス。このプロパティは、グラフィックスオブジェクトの種類を識別します。Figureオブジェクトに対して、Typeは、常に文字列 'figure'です。

UIContextMenu                オブジェクトのハンドル番号

コンテキストメニューとFigureの対応付け。このプロパティは、Figure内で作成したUicontextmenuオブジェクトのハンドルを割り当てます。コンテキストメニューを作成するためには、関数 uicontextmenu を使用してください。MATLABは、Figure上で右マウスボタンをクリックしたときに、コンテキストメニューを表示します。

Units                        {pixels} | normalized | inches |
                              centimeters | points | character

測定の単位。このプロパティは、サイズや位置データを解釈するためにMATLABが使用する単位を指定します。すべての単位は、ウィンドウの左下隅から測定されます。

このプロパティは、 CurrentPointPositionプロパティに影響を与えます。Unitsの値を変更した場合、Unitsがデフォルト値に設定されていると仮定している他の関数に影響を与えないように、計算が完了した後でデフォルト値に戻しておくことをお奨めします。

オブジェクトの作成中にプロパティ名とプロパティ値の組合わせとして単位を指定するとき、これらの単位を使ってプロパティを指定する前に、Unitsプロパティを設定しなければなりません。

UserData                     行列

ユーザ指定データ。Figureオブジェクトと関連付けたい任意の行列として、UserDataを指定することができます。オブジェクトは、このデータを使いませんが、setgetコマンドを使ってアクセスすることができます。

Visible                      {on} | off

オブジェクトの可視化Visibleプロパティは、オブジェクトをスクリーン上に表示するかどうかを決定します。FigureのVisibleプロパティがoffならば、Figureウィンドウは見えません。

WindowButtonDownFcn          文字列

マウスボタンを押したときのコールバック関数。Figureウィンドウ内でマウスボタンが押されたときに、MATLABが実行するコールバックルーチンを定義するために、このプロパティを使ってください。このルーチンは、有効 なMATLAB表現やM-ファイル名を文字列として定義します。MATLABのワークスペース内で式が実行されます。

uicontrol オブジェクトをクリックしたとき、このプロパティがどのように設定されているかの情報は、uicontrol を参照してください。

WindowButtonMotionFcn        文字列

マウスを移動したときのコールバック関数。Figureウィンドウ内でポインタを移動したときに、MATLABが実行するコールバックルーチンを定義するために、このプロパティを使ってください。このルーチンは、有効なMATLAB表現やM-ファイル名を文字列として定義します。MATLABのワークスペース内で式が実行されます。

WindowButtonUpFcn            文字列

マウスボタンを解除したときのコールバック関数。マウスボタンを解除したときにMATLABが実行するコールバックルーチンを定義するために、このプロパティを使ってください。このルーチンは、有効なMATLAB表現やM-ファイル名を文字列として定義します。MATLABのワークスペース内で式が実行されます。

ボタンを解除するイベントは、既にボタンを押すというイベントを行なったFigureウィンドウに関連付けられます。そのため、ボタンを解除するときに、ポインタがFigureウィンドウ内にある必要はありません。

WindowButtonDownFcnWindowButtonMotionFcnによって定義されるコールバックルーチンが、drawnowコマンドを含んでいたり、drawnowコマンドを含み、Interruptibleプロパティがoffに設定された他の関数をコールする場合、WindowButtonUpFcnはコールされません。Interruptibleonに設定することで、この問題を回避することができます。

WindowStyle                  {normal} | modal

ノーマル、または、モーダルなウィンドウの挙動WindowStylemodalに設定されると、Figureウィンドウは、視覚可能である限り、すべてのMATLABのウィンドウ上のすべてのキーボードとマウスイベントをトラップします。MATLAB以外の他のアプリケーションのウィンドウは、影響されません。モーダルなFigureは、上述のすべてのノーマルなFigureとMATLABコマンドウィンドウをスタックします。複数のモーダルなウィンドウが存在する場合、最後に作成されたウィンドウに焦点があてられ、視覚不可能になるか、 WindowStylenormalになるか、削除されるまで、他のすべてのウィンドウの上に表示されます。このとき、焦点は、最後に焦点があったウィンドウに戻ります。

WindowStylemodalVisibleoffであるFigureは、視覚可能になるまでモーダルな挙動は行わないので、再利用したいときには、破壊せずにモーダルなウィンドウを隠すことができます。

Figureの WindowStyleは、Figureが視覚可能で、子オブジェクトを含むときに変更できます。しかし、ノーマルウィンドウやモーダルウィンドウのウィンドウシステムのインプリメントによっては、Figureが消えたり、消えた後で再表示したりするシステムがあります。視覚的に最良な結果のためには、作成時やFigureが視覚不可能のときに、 WindowStyleを設定してください。

モーダルなFigureは、Uimenuの子や組み込みのメニューを表示しませんが、モーダルなFigure内でUimenuを作成したり、Uimenuの子をもつFigureでWindowStylemodalに変更するのはエラーではありません。Uimenuオブジェクトが存在し、それらのハンドルはFigureによって保持されています。FigureのWindowStylenormalにリセットする場合、Uimenuは表示されます。

他のウィンドウと連動させずに、強制的にユーザに応答させるダイアログボ ックスを作成するためには、モーダルなFigureを使用してください。MATLAB プロンプトで Control Cを入力すると、WindowStylemodalであるすべてのFigureのWindowStylenormalに戻るので、コマンドラインでタイプができるようになります。

XDisplay                     識別子の表示 (UNIX のみonly)

MATLABに対する表示を指定。ユーザは、XDisplayプロパティを使って、フィギュアウインドウを種々の表示を行なうことができます。たとえば、fredと云われるシステムでカレントフィギュアを表示するには、つぎのコマンドを使います。

XVisual                      ビジュアル識別子 (UNIX のみ)

MATLABで使用するビジュアルの設定XVisualプロパティに希望するビジュアルID を設定して、MATLABで使用するビジュアルを選択することができます。ユーザのアプリケーションを8ビット、または、グレースケールでテストしたい場合に、有効なものです。ユーザのシステムでどのビジュアルを使用できるかを見るには、UNIX xdpyinfo コマンドを使ってください。MATLABで、つぎのように入力してください。

戻ってくる情報は、ビジュアルのIDを示すラインです。たとえば、

で、カレントフィギュアでこのビジュアルを使用するには、XVisualプロパティにこのIDを設定してください。

XVisualMode                  auto | manual

ビジュアルの自動選択、マニュアル選択VisualModeは、2つの値、auto (デフォルト) と manualを設定することができます。autoモードの場合、MATLABは、OpenGL拡張等の使用可能なカラー数をベースに使用するための最良なビジュアルを選択します。manual モードで、MATLABは、カレントで使用しているビジュアルを変更しません。XVisualプロパティをmanualに設定してください。

 figure filebrowser