主要内容

最新のリリースでは,このページがまだ翻訳されていません。このこのの最新版版は英语でご覧になれます。

グラフィックスオブジェクトの取り扱い

グラフィックスオブジェクト

グラフィックスオブジェクトは,グラフを表示するために用いる基本要素です。次の図に示すように,これらのオブジェクトは階層にまとめられます。

プロット関数を呼び出すと,MATLAB®は图ウィンドウ,座標軸,ライン,テキストなどのさまざまなグラフィックスオブジェクトを使用してグラフを作成します。それぞれのオブジェクトには既定の一連のプロパティがあり,それを使用してグラフの動作と外観を管理できます。

たとえば,次のステートメントははy,バーの外観プロパティを设定设定ます。

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];栏(y,“FaceColor”,“绿色”,“EdgeColor”,“黑”,“线宽”, 1.5)

よく使用されるグラフィックスオブジェクト

MATLABでは,関数を呼び出してグラフを作成するときにグラフィックスオブジェクトの階層が作成されます。たとえば,関数情节を呼び出すと,以下のグラフィックスオブジェクトが作成されます。

  • 数字 - 座座,ツールバー,メニューなどを含むウィンドウ

  • 轴 - データデータを表すオブジェクトオブジェクトを座标

  • 线——関数情节に渡さに渡されるデータ値値を表す

  • 文本-軸目盛りのラベル,およびオプションのタイトルと注釈

グラフのタイプによりデータを表すオブジェクトは異なります。グラフにはさまざまな種類があるのでデータオブジェクトも多種多様です。ラインや四角形などの汎用オブジェクトから,エラーバー,カラーバー,凡例といった高度に特化したものまでさまざまです。

オブジェクトプロパティへのアクセス

プロット関数はグラフの作成に使用するオブジェクトを返すことができます。たとえば,次のステートメントはグラフを作成して,関数情节で作成された线オブジェクトを返します。

x = 1:10;y = x ^ 3;h =情节(x, y);

hを使用して线オブジェクトのプロパティを設定します。たとえば,颜色プロパティを设定します。

h.Color =“红色”;

プロット関数を呼び出すときにも线プロパティを指定できます。

h =情节(x, y,'颜色',“红色”);

次のように线プロパティをクエリして,現在の値を確認することができます。

h.LineWidth
ans = 0.5000

オブジェクトのプロパティの検出

オブジェクトのプロパティを表示するには,次のように入力します。

得到(h)

MATLABは,オブジェクトのプロパティと現在の値のリストを返します。

オブジェクトのプロパティと設定可能な値に関する情報を表示するには,次のように入力します。

集(h)

オブジェクトプロパティの设定

一度に複数のプロパティを設定するには,関数を使用します。

既存のオブジェクトのプロパティを設定

複数のオブジェクトで同じプロパティを同じ値に設定するには,関数を使用します。

たとえば,次のステートメントは,5行5列の行列をプロットし(列ごとに1つずつ合計5つの线オブジェクトを作成),标记プロパティを四角に,MarkerFaceColorプロパティを绿に设定ますます。

y =魔法(5);h =情节(y);集(h,'标记',“年代”,“MarkerFaceColor”,‘g’)

この場合,hは5つのハンドルを含むで,各各ハンドルはグラフ内のののラインラインの各々のステートメントは,すべてのラインの标记およびMarkerFaceColorプロパティを同じ値に設定します。

1つのオブジェクトオブジェクトにプロパティ値を设定するに,ハンドル配列にインデックスをます。

h(1)。线宽= 2;

複数のプロパティ値の設定

各各ラインのプロパティをを违うに设定するするする场,细胞配列を使ってすべてのデータ保存し,コマンドに渡すことができます。たとえば,プロットを作成してラインのハンドル番号を保存します。

figure y = magic(5);h =情节(y);

各ラインに別々のマーカーを追加し,マーカーの面の色をラインと同じ色にするものとします。2つの细胞配列を定義しなければなりません。1つはプロパティ名を含み,もう1つはプロパティの希望する値を含みます。

细胞配列prop_nameには,2要素が含まれ。

prop_name (1) = {'标记'};prop_name (2) = {“MarkerFaceColor”};

细胞配列prop_valuesは,10个の値をます。标记プロパティに対する値が5个で,MarkerFaceColorプロパティに対する値が5個です。prop_valuesは2次元细胞配列であることに注意してください。1次元目は,値が適用されるhのハンドル番号を示し,2次元目は,値が割り当てられるプロパティを示します。

prop_values (1, - 1) = {“年代”};prop_values(1、2)= {h (1) .Color};prop_values (2, 1) = {' d '};prop_values (2, 2) = {h (2) .Color};prop_values (3,1) = {'o'};prop_values(3,2)= {h(3).color};prop_values(4,1)= {“p”};prop_values (4,2) = {h (4) .Color};prop_values(5、1)= {“h”};prop_values(5,2)= {h(5).color};

MarkerFaceColorには常に,対応するラインの色(ラインの颜色プロパティを取得することにより取得)の値が代入されます。

细胞配列を定義した後で,を呼び出して新規のプロパティ値を指定します。

集(h, prop_name prop_values)

オブジェクトの利用に関する関数

次の表は,オブジェクトの利用に際して一般的に用いられる関数の一覧です。

関数

目的

allchild

指定したオブジェクトのすべての子オブジェクトを求める。

祖先

グラフィックスオブジェクトの上位オブジェクトを求める。

CopyObj.

グラフィックスオブジェクトをコピーする。

删除

オブジェクトの削除。

findall

すべてすべてのグラフィックスオブジェクトの(非表示のハンドルを含む)。

findobj.

指定したプロパティ値をもつオブジェクトのハンドルの検索。

gca

現在の座標のハンドル番号を出力。

gcf

現在の图のハンドル番号を出力。

gco

現在のオブジェクトのハンドル番号を出力。

得到

オブジェクトのプロパティ値の取得。

ishandle

有条不实。

オブジェクトのプロパティ値の設定。

引数の受け渡し

特殊なと,MATLABプロット关联,MATLABプロットと,MATLABプロットと。

次の例は,入力引数xで指定された范囲范囲ををして,结果をプロットするmatlab关键词。情节関数の2回目の呼び出しで,結果の意思の値が赤の线ででされ。

関数は,計算した値に基づいてy軸の目盛りを変更します。軸ラベルとタイトルを付けてカスタムグラフを完成させます。

功能plotFunc y (x) = 1.5 * cos (x) + 6 * exp(约* x) + exp (07 * x)。*罪(3 * x);ym =意味着(y);hfig =图(“名字”,'功能和均值');hax =轴('父母', hfig);情节(hax, x, y)情节(hax [min (x) max (x)], [ym ym),'颜色',“红色”抱紧ylab = hax.YTick;new_ylab = sort([ylab, ym]); / /排序hax。YTick = new_ylab;标题('y = 1.5cos(x) + 6e^{-0.1x} + e^{0.07x}sin(3x)')xlabel(“X轴”)ylabel(Y轴的)结束

入力引数の値を定義して関数を呼び出します。

x = -10:.005:40;plotfunc(x)

既存のオブジェクトのハンドル番号の検索

関数findobj.を使って,特定のプロパティ値をもつオブジェクトを検索することにより,グラフィックスオブジェクトのハンドル番号を取得することができます。findobj.によって,プロパティの値を任意に組み合わせて指定できるため,多くのオブジェクトから簡単に1つを選ぶことができます。findobj.は正規表現も認識します。

特定のタイプのすべてのオブジェクトの検索

すべてのオブジェクトはオブジェクト型を識別する类型プロパティをもつため,特定の型のすべてのオブジェクトのハンドルを検索できます。たとえば,

h = findobj (“类型”,“补丁”);

は,すべての补丁オブジェクトのハンドルを検索します。

特定のプロパティをもつオブジェクトの検索

検索範囲を狭めるために複数のプロパティを指定することができます。たとえば,

情节(兰德(5),'r:') h = findobj(“类型”,“行”,'颜色',“r”,'linestyle',':');

は,赤い赤い点のすべてハンドル号ををします。

h = 5x1 Line array: Line Line Line Line

検索範囲の制限

検索を开放する图または座标のハンドル番号をとしてとしてことにより,オブジェクト阶层内で検索検索たとえば,

h = findobj (gca),“类型”,'文本',“字符串”,‘\π/ 2);

は,現在の座標軸内のみでπ/ 2を検索します。