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} | 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のバックグランドとのコントラストが貧弱な出力結果となり、また、プリンタのトナーの消費も多くなります。
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に固有のものは以下の通りです。FaceLighting
EdgeLighting
プロパティに対する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 | ![]() |