| MATLAB Function Reference | ![]() |
ユーザは、2つの方法で、グラフィックオブジェクトプロパティを設定したり、引用できます。
setとget は、プロパティの値を設定したり、引用したりします。プロパティのデフォルト値を変更するには、 デフォルトプロパティ値の設定を参照してください。
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
オフスクリーンピクセルバッファ。BackingStoreがonのとき、MATLABは、オフスクリーンピクセルバッファにFigureウィンドウのコピーを格納します。Figureウィンドウの隠れた部分が現れるとき、MATLABはスクリーン上にオブジェクトを再生するのではなく、このバッファからウィンドウの内容をコピーします。これにより、スクリーン上への再描画処理が高速化されます。
BackingStoreをoffに設定することで、この機能を無効にしてバッファに使われているメモリを解除することができます。使用しているコンピュータがBackingStoreをサポートしていないときは、BackingStoreプロパティを設定しようとするとワーニングメッセージが出力されますが、他には何も影響ありません。
BackingStoreをoffに設定すると、オフスクリーンバッファとFigureウィンドウの両方に描く必要がなくなるので、アニメーションを高速化することができます。
BusyAction cancel | {queue}
コールバックルーチンの割込み。BusyActionプロパティを使って、実行中のコールバックルーチンに割込みを行うイベントの取り扱い方法を制御することができます。実行中のコールバックルーチンがあれば、続いて呼び込まれるコールバックルーチンは、常にそれを中断しようとします。コールバックを実行中のオブジェクトのInterruptibleプロパティがon(デフォルト)に設定されていれば、イベントキューが処理されるつぎの点で割込みが起こります。Interruptibleプロパティがoffならば、(実行中のコールバックをもつオブジェクトの)BusyActionプロパティは、MATLABがイベントを処理する方法を指定します。つぎのような選択があります。
cancel - 2番目のコールバックルーチンを実行しようとしたイベントを破棄します。
queue - 現在のコールバックが終了するまで、2番目のコールバックルーチンを実行しようとするイベントをキューに追加します。
ButtonDownFcn 文字列マウスボタンを押したときのコールバック関数。ポインタがFigureウィンドウ内に存在し、子オブジェクト上(たとえばUicontrol, Axes, Axesの子オブジェクト)でないときにマウスボタンを押すときに、必ず実行されるコールバックルーチン。このルーチンには、正しいMATLAB表現またはM-ファイル名を文字列として定義してください。式は、MATLABワークスペース内で実行します。
Children ハンドル番号からなるベクトル
Figureの子オブジェクト。Figure内に表示されているすべてのaxes, uicontrol, uicontextmenu, uimenu オブジェクトのハンドル番号を含むベクトルです。ハンドル番号の順序を変更することができ、それによって、ディスプレイ上のオブジェクトのスタックの順序が変わります 。
Clipping {on} | off
CloseRequestFcn 文字列
Figureを閉じるときに実行されるコールバック。このプロパティは、closeコマンド(close(figure_handle)やclose all)が読み込まれたときはいつも、また、コンピュータのウィンドウマネージャのメニューによってFigureを閉じるときに、常にMATLABが実行するコールバックルーチンを定義します。
closeコマンドを実行したり、コンピュータのウィンドウマネージャメニューからウィンドウを閉じたり、または、MATLABを終了したりします。CloseRequestFcnで定義された関数を実行します。デフォルトの関数は、closereqで、つぎのように定義されています。delete(get(0,'CurrentFigure'))このステートメントは、ウィンドウを破壊して、カレントのFigureを消去します。
closereqは、closeコマンドがクローズ要求関数を呼び出す前に、引数として指定されたすべてのFigureをカレントのFigureとすることを利用します。
CloseRequestFcnは、M-ファイル名を含む有効なMATLABステートメン
トである任意の文字列に設定できます。たとえば、つぎのようになります。
set(gcf,'CloseRequestFcn','disp(''This window is immortal'')')
このクローズ要求関数は、Figureウィンドウをクローズしません。単に、コマンドラインに"This window is immortal"と表示します。クローズ要求関数がdeleteを呼び出さなくても、MATLABはFigureをクローズしません(非破壊クローズ要求関数を使ってウィンドウを作成すると、コマンドラインから、常にdelete(figure_handleを読み込むことができます)。
クローズ要求関数のより有効な応用は、クローズ操作を実行するかどうかを
ユーザに尋ねる、質問ダイアログボックスを表示することです。つ
ぎのM-ファイルは、この使用法を記述しています。
% my_closereq
%質問ダイアログボックスを表示するための
% ユーザ定義クローズ要求関数
selection = questdlg('Close Specified Figure?',...
'Close Request Function',...
'Yes','No','Yes');
switch selection,
case 'Yes',
delete(get(0,'CurrentFigure'))
case 'No'
return
end
このM-ファイルをFigureのCloseRequestFcnに割り当てます。
set(figure_handle,'CloseRequestFcn','my_closereq')このM-ファイルをデフォルトのクローズ要求関数にするために、Rootレベルでデフォルト値を設定します。
set(0,'DefaultFigureCloseRequestFcn','my_closereq')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のデフォルト値として定義しなければなりません。たとえば、つぎのステートメント、
set(0,'DefaultFigureCreateFcn',... 'set(gcbo,''IntegerHandle'',''off'')')は、作成される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は、CurrentFigureのCurrentObjectを取得する便利な方法です。
CurrentPoint 2要素ベクトル: [x座標 y座標]Figure内で最後にマウスボタンをクリックした位置。 MATLABは、このプロパティを最後にマウスボタンを押したときのポインタの位置に設定します。 MATLABは、ポインタがFigureウィンドウ内にあるときにマウスボタンがクリックされると、このプロパティを更新します。
さらに、MATLABは、FigureのWindowButtonMotionFcnとWindowButtonUpFcnプロパティに対して定義されたコールバックルーチンを実行する前に、CurrentPointを更新します。これにより、これらのコールバックルーチンからCurrentPointを参照できます。つぎのように行います。
WindowButtonMotionFcn またはWindowButtonUpFcnに対して、コールバックルーチンが定義されていなければ、MATLABはFigureウィンドウ内でマウスボタンが押されたときのみ、CurrentPoint を更新します。
WindowButtonMotionFcnに対して定義されているコールバックルーチンがある場合は、MATLABはコールバックを実行する前にCurrentPoint を更新します。マウスボタンがウィンドウ内で押され、その後ポインタがスクリーン上を移動しなければ、WindowButtonMotionFcnはFigureウィンドウ内でのみ実行します。この場合、ルーチンはマウスボタンがリリースされるまで、スクリーン上の任意の位置で実行されます(そしてCurrentPoint が更新されます)。
WindowButtonUpFcnに対して定義されているコールバックルーチンがある場合は、MATLABはコールバックを実行する前にCurrentPointを更新します。マウスボタンが最初にウインドウ内で押された状態でなければ、ポインタがFigureウィンドウ内にあるときのみWindowButtonUpFcnは実行されます。この場合、スクリーン上の任意の位置でボタンをリリースすると、コールバックが実行されます。これは、CurrentPointの更新よりも優先されます。
CurrentPointは、前に説明した通り、イベントが生じるときにのみ更新されます。(WindowButtonMotionFcnが実行に時間がかかったり、ポインタが非常に大きく移動されたときのような)状況では、 CurrentPointは、ポインタの実際の位置を反映しないかもしれませんが、WindowButtonMotionFcn が実行を開始したときの位置に影響を与えることがあります。
CurrentPoint は、Unitsプロパティに設定されている単位を使って、Figure
ウィンドウの左下隅から測定されます。
ルートのPointerLocationプロパティは、ポインタの移動と同時に更新されたポインタの位置を含んでいます。しかし、位置はFigureウィンドウではなく、スクリーンに対して測定されます。
uicontrolオブジェクトの上をクリックしたとき、このプロパティが、どのように設定されているかの情報については、uicontrol を参照してください。
DeleteFcn 文字列
Figureを削除するときのコールバックルーチン。Figureオブジェクトが削除される(たとえば、deleteやcloseコマンドが実行される)ときに実行するコールバックルーチン。MATLABは、オブジェクトのプロパティを壊す前に、このルーチンを実行するので、オブジェクトの値をコールバックルーチンで利用することができます。
DeleteFcnを実行しているオブジェクトのハンドル番号は、ルートのCallbackObjectプロパティによってのみアクセスが可能です。このプロパティは、gcboを使って確認できます。
Dithermap RGB値からなるn行3列行列
擬似カラー表示のトゥルーカラーデータで使われるカラーマップ。このプロパティは、擬似カラー(8-ビット以下)ディスプレイ上の表示に対して、MATLABがトゥルーカラーCDataをディザリングするために使うカラーマップを定義します。MATLABは、トゥルーカラーCDataとして定義される各RGBカラーを、ディザーマップ内の最も近いカラーに写像します。デフォルトのDithermapは、十分なスペクトルを表現するカラーを含んでいるので、どんなカラー値でもそれなりに写像されます。
DithermapModeプロパティを参照してください。
DithermapMode auto | {manual}
ディザーマップの生成。manualモードでは、MATLABは、擬似カラーディスプレイ上に直接にカラーを表示するために、Dithermapプロパティで定義されたカラーマップを使います。DithermapModeがautoのとき、MATLABは、現在表示されているカラーに基づいてディザーマップを生成します。これは、デフォルトのディザーマップで満足する結果を得られないときに有効です。
Dithermapプロパティにロードしたもの)を保存することで、不必要な再生を回避することができます。
DoubleBuffer on | {off}
簡単なアニメーション用のFlash-free レンダリング。
ダブルバッファリングは、実際のピクセルバッファに描画する過程です。そして、描画が完成すると、バッファの内容をスクリーンに作成します。ダブルバッファリングは、一般に簡単なアニメーションに対して、flash freeのレンダリングをします(多くの多角形を含むオブジェクトに対しては、そのラインを含む)。アミメーションされるオブジェクトのEraseModeプロパティをnormalに設定します。コマンドsetを使って、ダブルバッファリングを行ないます。
set(figure_handle,'DoubleBuffer','on')
ダブルバッファリングは、フィギュアのRendererプロパティをpaintersに設定したときのみ機能します。
文字列
GUI M-ファイル。 このプロパティは、作成されたM-ファイルの名前をストアするために、GUIDEで使われます。
FixedColors RGB値からなるm行3列行列(参照のみ)カラーマップにないカラー。Figureのカラーマップから得られないカラーをFigureウィンドウ内に表現するために、固定カラーを定義します。これには、軸やラベルの他、Line, Text, Uicontrol,Uimenuなどのオブジェクトのカラーや、明示的に定義される任意のカラーが含まれます。たとえば、つぎのようなステートメントで定義されるものです。
set(gcf,'Color',[0.3 0.7 0.9]).
固定カラーの定義は、システムのカラーテーブル内にあって、Figureのカラーマップにないものです。このため、固定カラーの色数にFigureのカラーマップのエントリ数を加えて、使用しているシステムの最大色数を超える場合、固定カラーは同時に表示される色数を制限します。
(システム上でサポートされる全色数の決定については、ルートのScreenDepthプロパティを参照してください。MATLABがアプリケーション間の色分けをどのように行っているかは、MinColorMapおよびShareColors プロパティを参照してください)。
HandleVisibility {on} | callback | offコマンドラインユーザとGUIによるオブジェクトのハンドルへのアクセスの制御。 このプロパティは、オブジェクトのハンドルが、その子オブジェクトの親のリスト内で視覚可能であるときに指定します。このプロパティは、(ダイアログボックスのような)ユーザインタフェースデバイスのみを含んでいるFigure内に、コマンドラインから誤って書き込むことや削除することを防ぐために有効です。
HandleVisibilityがonのときは、ハンドルは常に見える状態です。
HandleVisibilityをcallback に設定すると、ハンドルは、コールバックルーチンの中から、またはコールバックにより起動される関数からは可視化されますが、コマンドラインから起動される関数の中からは可視化されません。これは、コマンドラインユーザがGUIを保護しながら、コールバックルーチンがオブジェクトのハンドルに完全にアクセスできるようにするために提供されています。
HandleVisibilityをoffに設定すると、常にハンドルは視覚不可能になります。これは、コールバックルーチンが、GUI(ユーザがタイプした文字列の評価のような)を傷つける可能性がある関数を呼び込み、その関数の実行中にハンドルを一時的に隠すときに必要です。
ハンドルが子オブジェクトの親のリスト内で視覚不可能のとき、オブジェクトの階層を検索したり、ハンドルのプロパティを確認してハンドルを取得する関数は、ハンドル番号を出力しません。これらの関数には、get, findobj, gca, gcf, gco, newplot, cla, clf, closeが含まれます。
ハンドルの視覚状態がcallbackや offを使って制限されているとき、オブジェクトのハンドルは、その親のChildren プロパティには現れません。Figureは、ルートのCurrentFigureプロパティに現れず、オブジェクトは、ルートのCallbackObjectプロパティ、または、FigureのCurrentObjectプロパティに現れません。そして、Axesは、親オブジェクトのCurrentAxesロパティに現れません。
ルートの ShowHiddenHandles プロパティをonに設定すると、それらのHandleVisibilityの設定(これは、HandleVisibilityプロパティの値に影響を与えません)に拘わらず、すべてのハンドルを視覚可能にできます。
隠されているハンドル番号も、まだ有効です。オブジェクトのハンドルが分かっていると、そのプロパティを関数setとgetで設定し、ハンドルを取り扱う関数に渡すことができます。
HitTest {on} | off
マウスクリックによる選択。 HitTestは、Figure上でのマウスクリックの結果、Figureがカレントのオブジェクト(gcoコマンドとFigureのCurrentObject プロパティにより出力される)になり得るかどうかを指定します。HiTest がoffならば、Figureをクリックすると、CurrentObject を空行列に設定します。
IntegerHandle {on} | offFigureのハンドル番号モード。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のバックグランドとのコントラストが貧弱な出力結果となり、また、プリンタのトナーの消費も多くなります。
InvertHardCopyがonのとき、FigureとAxesの色を白に、軸、目盛り、軸ラベルなどのカラーを黒に変更することで、MATLABはプリント出力効果を高めます。 Lines, TextやPatches、Surfaces のエッジは、指定されたprintコマンドのオプションによって変わることがあります。
InvertHardCopyをoffに設定すると、プリント出力はスクリーン上に表示されたカラーで行われます。
MATLABのFigureのプリント出力に関する詳細な情報については、 print のリファレンスページを参照してください。
KeyPressFcn 文字列
キーを押したときのコールバック関数。Figureウィンドウ内でキーが押されたときに呼び出されるコールバックルーチン。KeyPressFcnには、任意のMATLAB表現やM-ファイル名を定義することができます。
CurrentCharacterプロパティを参照し、それによってコールバックの実行を指定のキーに制限します。
コールバックルーチンは、また、どのFigure内でキーが押されたかを、RootオブジェクトのPointerWindowプロパティで確認します。ポインタがある特定のFigure内にあるときにキーを押しても、そのFigureはカレントFigure(つまり、gcf コマンドで参照されるFigure)にはならないことに注意してください。
MenuBar none | {figure}
Figureのメニューバーを視覚可能/不可能にする。このプロパティで、Figureウィンドウの上部にあるメニューバーを表示したり、隠したりすることができます。デフォルト(figure)は、メニューバーを表示します。
uimenuを使って定義されたメニューは、このプロパティの影響を受けません。
MinColormap スカラ(デフォルト= 64)
使用するカラーテーブルのエントリの最小数。このプロパティは、Figureに対して定義されるカラーマップを格納するためにMATLABが使用するシステムのカラーテーブルのエントリの最小数を指定します(ColorMapプロパティを参照してください)。ある状況では、適切な色を使用するために、この値を大きくする必要があります。
MinColorMapをカラーマップの長さに等しく設定してください。
set(gcf,'MinColormap',length(get(gcf,'ColorMap')))
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の値によって、つぎのように異なります。
add -- グラフィックスを表示するためにカレントFigureを使います(デフォルト)。
replace -- グラフィックスを表示する前に、Positionを除くすべてのFigureプロパティをデフォルト値にリセットし、Figureのすべての子オブジェクトを削除します(clf resetに等価です)。
replacechildren -- すべての子オブジェクトを取り除きますが、Figureプロパティをリセットしません(clfに等価です)。
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の位置を決める長方形。つぎのような形式のベクトルを使って、この長方形を指定してください。
rect = [left, bottom, width, height]
ここで、 left で紙面の左端から長方形の左端までの距離を、bottomで紙面の下部から長方形の下部までの距離を指定します。これらの距離で、長方形の左下隅を定義します。 width とheightは、長方形の大きさを定義します。 PaperUnitsプロパティは、この長方形を定義するために使う単位を指定します。
PaperPositionMode auto | {manual}
FigureのWYSIWYGプリント出力。manualモードでは、MATLABは PaperPositionプロパティで指定された値を使います。autoモードでは、紙面中央に、コンピュータスクリーン上のFigureと同じサイズでプリント出力します。
PaperSize [width height](参照のみ)
用紙サイズ。このプロパティは、PaperUnitsで測定されたカレントの
PaperTypeのサイズを含んでいます。標準の用紙サイズの選択については、 PaperTypeを参照してください。
PaperType つぎの表の値から選択
標準の用紙サイズの選択。このプロパティは、PaperSizeをつぎの標準サイズの中の1つに設定します。これらのサイズは、つぎの通りです。
PaperPositionプロパティを変更する必要があることに注意してください。解決法の1つは、正規化されたPaperUnitsを使用することで、これは用紙サイズに拘わらず、Figureを印刷されたページと自動的に同じ大きさにします。
PaperUnits normalized | {inches} | centimeters |points
ハードコピーの測定の単位。このプロパティは、PaperPositionとPaperSizeプロパティを定義するために使う単位を指定します。どの単位でも、紙面の左下隅から測定されます。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ウィンドウ内のポインタ(カーソル)の位置を示すために使われる記号を決定します。Pointerをcustomに設定すると、ユーザ自身のポインタ記号を定義することができます。詳細は、PointerShapeCDataプロパティを参照してください。Using MATLAB Graphicsマニュアルも参照してください。
PointerShapeCData 16行16列の行列
ユーザ定義のポインタ。このプロパティは、Pointerプロパティをcustomに設定したときに使われるポインタを定義します。これは、16行16列の行列で、つぎの値を使って16行16列のピクセルのポインタを定義します。
1 - 黒のピクセル
2 - 白のピクセル
NaN - 透明なピクセル(スクリーンを透かします)
PointerShapeCData行列の(1,1)要素は、ポインタの左上隅に対応します。
Pointerプロパティを既定のポインタ記号の中の1つに設定しても、PointerShapeCDataの値は変更されません。32行32列のピクセルポイントをサポートしているコンピュータシステムでは、使えるピクセルマップは4分の1だけです。
PointerShapeHotSpot 2要素ベクトル
ポインタのアクティブ領域。ポインタの位置を示すピクセルを定義する
PointerShapeCData行列内の、行と列のインデックスを指定する2要素ベクトル。この位置は、CurrentPointプロパティとRootオブジェクトのPointerLocationプロパティに含まれます。デフォルト値は(1,1)要素で、これは左上隅に相当します。
Position 4要素ベクトルFigureの位置。このプロパティは、Figureウィンドウのスクリーン上でのサイズと位置を指定します。つぎの形式の4要素ベクトルを使って長方形の位置を指定します。
rect = [left, bottom, width, height]
ここで、 leftとbottomは、スクリーンの左下隅からFigureウィンドウの左下隅までの距離を定義します。 widthとheightは、ウィンドウの大きさを定義します。この指定で使われる単位についての情報は、Units プロパティを参照してください。left とbottom の要素は、複数のモニタをもつシステム上では負の値でも構いません。
このプロパティを取り出したり、Figureの位置を決めるためには関数getを、
Figureをリサイズしたり、新たな位置に移動したりするためには関数set を使うことができます。
Renderer painters | zbuffer |OpenGL スクリーンとプリント出力で使われるレンダリング手法 。このプロパティで、MATLABグラフィックスを描写するために使う手法を選択することができます。つぎの中から選択できます。
painters - MATLABのオリジナルのレンダリング手法は、Figureが単純なグラフィックスや小さなグラフィックスだけを含んでいるときに、より高速に処理をします。
zbuffer - オブジェクトはピクセル単位で色付けされていて、MATLABはその場で見えているピクセルだけを描画するので(こうして、前後のソートエラーを無くします)、MATLABはより高速かつ精密にグラフィックスオブジェクトを描きます。MATLABが複雑な表示をしていると、この手法は多くのシステムメモリを消費することに注意してください。
OpenGL - OpenGLは、多くのコンピュータシステムで使用可能なレンダラです。これは、paintersやzbufferよりも高速で、システムによっては、MATLABがグラフィックスハードウエアにアクセスできることがあります。ハードウエアとソフトウエアでのOpenGLの実現
OpenGLの実現には、ハードウエアとソフトウエアの2種類があります。 ハードウエアによる実現は、性能の向上のために特殊なグラフィックスハードウエアを使用し、そのためソフトウエア版よりも非常に高速です。多くのコンピュータでは、この特殊なハードウエアがオプションとして使用可能であるか、これらのハードウエアと共に出荷されています。 ソフトウエアによる実現は、MATLAB version 5.0で使用可能であるZbufferとよく似ていますが、OpenGLは一般的にZbufferよりも優れた機能を提供します。OpenGLの使用
OpenGLは、VMSを除くMATLABが稼動するすべてのコンピュータで使用可能です。MATLABは、OpenGLが使用可能ならば、そのバージョンを自動的に調べます。ハードウエアバージョンが使用不可能ならば、MATLABはソフトウエアバージョンを使用します。 プラットフォーム別に使用可能なソフトウエアバージョンは、つぎの通りです。Microsoftバージョンは、つぎのURLから入手可能です。
ftp://ftp.microsoft.com/softlib/mslfiles/opengl95.exe
Windows 95に対するSilicon Graphicsバージョンは、つぎのURLから入手可能です。
http://www.sgi.com
テストされているハードウエアバージョン
MS-Windowsプラットフォームでは、OpenGLを高速化する多くのグラフィックスボードがあります。MathWorksは、AccelGraphicsのAccelECLIPSEボード上でMATLABをテストしました。 UNIXプラットフォームでは、MathWorksは、Creator 3DボードをもつSparc Ultraと、IRIX 6.4以降が稼動しているSilicon Graphicsコンピュータ上でMATLABをテストしました。使用しているバージョンの調べ方
ユーザのシステム上でMATLABが使用しているOpenGLライブラリのバージョンおよびベンダーを調べるためには、MATLABプロンプトで、つぎのようにタイプしてください。feature GetOpenGLInfoこのコマンドは、MATLABが使用している固有のライブラリで使用可能なOpenGLの拡張子からなる文字列を出力します。この情報は、MathWorksにとって役立ちますので、バグレポートの際には付け加えてください。
OpenGLと他のMATLABレンダラ
OpenGLと他のレンダラを使用して作成された図には、違いがあります。OpenGLに固有のものは以下の通りです。FaceLightingEdgeLightingプロパティに対するphong 値をサポートしていません。
TMWがテストしたOpenGL
つぎのハードウエアバージョンがテストされています。RendererMode {auto} | manual
Rendererの自動選択、または、ユーザ選択 。このプロパティは、MATLABが、figureウィンドウの内容に基づいてRendererを選択するか、Rendererを変更しないかを指定することができます。
RendererModeプロパティが autoに設定されているとき、MATLABはFigure内のグラフィックスオブジェクトのサイズと複雑さに基づいて、スクリーン表示用とプリント出力のためのレンダリング手法を選択します。
プリント出力に対して、zbufferによるFigureからのプリント出力は、paintersのレンダリング手法を使うよりもかなり遅く、結果として大きなPostScriptファイルとなるので、スクリーンのレンダリングよりも複雑な場合には、MATLABはzbufferにスイッチします。しかし、出力は常にスクリーン上と一致しています。OpenGLに対しても同じことが言え、出力はZbufferレンダラで作成したのと同じです。これは、printコマンドの-rオプションによって指定された解像度をもつビットマップです
RendererModeプロパティをautoと設定すると、MATLABは、つぎの規範を使って、OpenGLレンダラを選択するかを決定します。
zbufferを選択します。opengl 自動選択モードは、autoselectです。RendererModeプロパティをmanualに設定すると、MATLAB は、フィギュアの内容の変更に関わらず、Rendererを変更しません。
Resize {on} | off
ウィンドウのリサイズモード。このプロパティは、マウスを使ってFigureウィンドウをリサイズできるかどうかを決定します。 onならばウィンドウのリサイズが可能です。 offならばできません。Resizeが offのとき、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なプログラミングに注意してください。ここで、コールバックは、正確に動作するためにピクセル単位であることが必要で、以前の値を後でリストアします。
u = findobj('Tag','StatusBar');
fig = gcbo;
old_units = get(fig,'Units');
set(fig,'Units','pixels');
figpos = get(fig,'Position');
upos = [0, figpos(4) - 20, figpos(3), 20];
set(u,'Position',upos);
set(fig,'Units',old_units);
ResizeFcnのコールバック内からFigureのPositionを変更できますが、結果として ResizeFcnは再度呼び出されません。
PaperPositionModeプロパティが manualに設定され、関数resizeを定義した場合には、printコマンドはResizeFcnを呼び出すことに注意してください。printコマンドによって関数resizeを呼び出したくない場合は、PaperPositionMode をautoに設定してください。
Selected on | off
オブジェクトの選択状態。このプロパティは、Figureが選択されているかどうかを示します。たとえば、ButtonDownFcnでこのプロパティを設定するように定義すると、マウスを使ってオブジェクトを選択することができます。
SelectionHighlight {on} | off
SelectionType {normal} | extend | alt | open
(参照のみ)マウスの選択タイプ。MATLABは、Figureウィンドウ内で最後にマウスボタンが押されたときの情報を提供するために、このプロパティを使います。この情報は、行われた選択のタイプを示します。選択タイプは、ユーザインタフェースソフトウェアからの特定の応答に一般的に関連するアクションです(たとえば、グラフィックスオブジェクトを1回クリックすると、移動モードあるいはリサイズモードにする、ファイル名をダブルクリックするとそのファイルを開くなど)。
これらの選択で要求される物理的なアクションは、プラットフォームによって異なります。しかし、どのプラットフォーム上にもすべての選択タイプが存在します。ListBox のスタイルは、1回のマウスクリックを示すためにはFigureのSelectionTypeプロパティをnormalに、ダブルクリックを示すためにはopenに設定することに注意してください。
ShareColors {on} | offカラーマップストレージモード。 このプロパティは、MATLABがシステムのカラーテーブルにFigureカラーマップを格納する方法に影響を与えます。デフォルトでは、MATLABは既定の色を見て、ピクセルカラーを割り当てるためにそれらのスロットを使います。これにより、カラーリソース(256色以下の表示機能のシステム上で制限されます)は効率よく使われ、同時に正しい色で表示できるFigureウィンドウの数を多くすることができます。
しかし、表示されているグラフィックスオブジェクトを再描画させずに、速くFigureのカラーマップを変更したい場合、色の分配をするべきではありません(ShareColorsをoffに設定してください)。この場合、最初のカラーマップに対して使われるシステムのカラーテーブル内のすべてのスロットが、2番目のカラーマップ内の対応する色で置き換えられるので、MATLABは、ピクセルカラーの割り当てを変更しないで、別のカラーマップと入れ替えることができます(カラーマップが同じ長さで、コンピュータハードウェアのシステムカラーテーブルをユーザが修正できる場合に限り、適用されることに注意してください)。
Tag 文字列
ユーザ指定のオブジェクトラベル。Tagプロパティは、ユーザ設定のラベルをもつグラフィックスオブジェクトを識別する方法を与えます。これは、オブジェクトのハンドル番号をグローバル変数として定義したり、コールバックルーチン間の引数としてそれらを受け渡したりする必要がある対話型のグラフィックスプログラムを構築するときに、特に有効です。
Tagを使ってFigureを確認します。
figure('Tag','Plotting Figure')
このとき、findobjでTagを検索し描画する前に、そのFigureをカレントにします。
figure(findobj('Tag','Plotting Figure'))
Type 文字列(参照のみ)
オブジェクトのクラス。このプロパティは、グラフィックスオブジェクトの種類を識別します。Figureオブジェクトに対して、Typeは、常に文字列 'figure'です。
UIContextMenu オブジェクトのハンドル番号
コンテキストメニューとFigureの対応付け。このプロパティは、Figure内で作成したUicontextmenuオブジェクトのハンドルを割り当てます。コンテキストメニューを作成するためには、関数 uicontextmenu を使用してください。MATLABは、Figure上で右マウスボタンをクリックしたときに、コンテキストメニューを表示します。
Units {pixels} | normalized | inches |
centimeters | points | character測定の単位。このプロパティは、サイズや位置データを解釈するためにMATLABが使用する単位を指定します。すべての単位は、ウィンドウの左下隅から測定されます。
normalizedは、Figureウィンドウの左下隅を(0,0)、右上隅を(1.0,1.0)にします。
inches, centimeters,pointsは、絶対的な単位(1ポイントは1/72インチ)です。pixelのサイズはスクリーン解像度に依存します。
Characterは、デフォルトのシステムフォントからキャラクタによって定義されます。1つのキャラクタの幅は文字xの幅で、キャラクタの高さはテキスト内の2行のベースライン間の距離です。
CurrentPointとPositionプロパティに影響を与えます。Unitsの値を変更した場合、Unitsがデフォルト値に設定されていると仮定している他の関数に影響を与えないように、計算が完了した後でデフォルト値に戻しておくことをお奨めします。
オブジェクトの作成中にプロパティ名とプロパティ値の組合わせとして単位を指定するとき、これらの単位を使ってプロパティを指定する前に、Unitsプロパティを設定しなければなりません。
UserData 行列
ユーザ指定データ。Figureオブジェクトと関連付けたい任意の行列として、UserDataを指定することができます。オブジェクトは、このデータを使いませんが、setやgetコマンドを使ってアクセスすることができます。
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ウィンドウ内にある必要はありません。WindowButtonDownFcnやWindowButtonMotionFcnによって定義されるコールバックルーチンが、drawnowコマンドを含んでいたり、drawnowコマンドを含み、Interruptibleプロパティがoffに設定された他の関数をコールする場合、WindowButtonUpFcnはコールされません。Interruptibleをonに設定することで、この問題を回避することができます。
WindowStyle {normal} | modal
ノーマル、または、モーダルなウィンドウの挙動。 WindowStyleがmodalに設定されると、Figureウィンドウは、視覚可能である限り、すべてのMATLABのウィンドウ上のすべてのキーボードとマウスイベントをトラップします。MATLAB以外の他のアプリケーションのウィンドウは、影響されません。モーダルなFigureは、上述のすべてのノーマルなFigureとMATLABコマンドウィンドウをスタックします。複数のモーダルなウィンドウが存在する場合、最後に作成されたウィンドウに焦点があてられ、視覚不可能になるか、 WindowStyleがnormalになるか、削除されるまで、他のすべてのウィンドウの上に表示されます。このとき、焦点は、最後に焦点があったウィンドウに戻ります。
WindowStyleが modalでVisibleがoffであるFigureは、視覚可能になるまでモーダルな挙動は行わないので、再利用したいときには、破壊せずにモーダルなウィンドウを隠すことができます。
Figureの WindowStyleは、Figureが視覚可能で、子オブジェクトを含むときに変更できます。しかし、ノーマルウィンドウやモーダルウィンドウのウィンドウシステムのインプリメントによっては、Figureが消えたり、消えた後で再表示したりするシステムがあります。視覚的に最良な結果のためには、作成時やFigureが視覚不可能のときに、 WindowStyleを設定してください。
モーダルなFigureは、Uimenuの子や組み込みのメニューを表示しませんが、モーダルなFigure内でUimenuを作成したり、Uimenuの子をもつFigureでWindowStyleをmodalに変更するのはエラーではありません。Uimenuオブジェクトが存在し、それらのハンドルはFigureによって保持されています。FigureのWindowStyle をnormalにリセットする場合、Uimenuは表示されます。
他のウィンドウと連動させずに、強制的にユーザに応答させるダイアログボ
ックスを作成するためには、モーダルなFigureを使用してください。MATLAB
プロンプトで Control Cを入力すると、WindowStyleがmodalであるすべてのFigureのWindowStyleがnormalに戻るので、コマンドラインでタイプができるようになります。
XDisplay 識別子の表示 (UNIX のみonly)
MATLABに対する表示を指定。ユーザは、XDisplayプロパティを使って、フィギュアウインドウを種々の表示を行なうことができます。たとえば、fredと云われるシステムでカレントフィギュアを表示するには、つぎのコマンドを使います。
set(gcf,'XDisplay','fred:0.0')
XVisual ビジュアル識別子 (UNIX のみ)
MATLABで使用するビジュアルの設定。 XVisualプロパティに希望するビジュアルID を設定して、MATLABで使用するビジュアルを選択することができます。ユーザのアプリケーションを8ビット、または、グレースケールでテストしたい場合に、有効なものです。ユーザのシステムでどのビジュアルを使用できるかを見るには、UNIX xdpyinfo コマンドを使ってください。MATLABで、つぎのように入力してください。
!xdpyinfo
戻ってくる情報は、ビジュアルのIDを示すラインです。たとえば、
visual id: 0x21
で、カレントフィギュアでこのビジュアルを使用するには、XVisualプロパティにこのIDを設定してください。
set(gcf,'XVisual','0x21')
XVisualMode auto | manual
ビジュアルの自動選択、マニュアル選択。 VisualModeは、2つの値、auto (デフォルト) と manualを設定することができます。autoモードの場合、MATLABは、OpenGL拡張等の使用可能なカラー数をベースに使用するための最良なビジュアルを選択します。manual モードで、MATLABは、カレントで使用しているビジュアルを変更しません。XVisualプロパティをmanualに設定してください。
| figure | filebrowser | ![]() |