matlab.graphics.chartcontainer.ChartContainer クラス
名前空間: matlab.graphics.chartcontainer
チャート オブジェクトの開発の基底クラス
説明
matlab.graphics.chartcontainer.ChartContainer は、チャート オブジェクトの独自のクラスを定義するためのクラスです。この基底クラスのサブクラスを定義するときは、ChartContainer のプロパティと、チャート オブジェクトを作成するメソッドを使用できます。ChartContainer クラスから直接継承するには、クラス定義ファイルの最初の行で次の構文を指定します。ここで、MyChart はオブジェクト名です。
classdef MyChart < matlab.graphics.chartcontainer.ChartContainer
matlab.graphics.chartcontainer.ChartContainer クラスは handle クラスです。
プロパティ
軸ラベルや目盛りなどの装飾用の余白を除いた、チャートのサイズと位置。このプロパティは、[left bottom width height] の形式のベクトルとして指定します。値は、Units プロパティで指定した単位で表されます。
left— 親コンテナーの左端から、余白を除くチャートの内側の左端までの距離。通常、親コンテナーは Figure、パネル、またはタブです。bottom— 親コンテナーの下端から、余白を除くチャートの内側の下端までの距離。width— 余白を除くチャートの幅。height— 余白を除くチャートの高さ。
メモ
チャートの親が TiledChartLayout である場合は、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
軸ラベルや目盛りなどの装飾用の余白を含む、チャートのサイズと位置。このプロパティは、[left bottom width height] の形式のベクトルとして指定します。値は、Units プロパティで指定した単位で表されます。
left— 親コンテナーの左端から、余白を含むチャートの外側の左端までの距離。通常、親コンテナーは Figure、パネル、またはタブです。bottom— 親コンテナーの下端から、余白を含むチャートの外側の下端までの距離。width— 余白を含むチャートの幅。height— 余白を含むチャートの高さ。
メモ
チャートの親が TiledChartLayout である場合は、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
軸ラベルや目盛りなどの装飾用の余白を除いた、チャートのサイズと位置。このプロパティは、[left bottom width height] の形式のベクトルとして指定します。このプロパティは、InnerPosition プロパティと等価です。
メモ
チャートの親が TiledChartLayout である場合は、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
装飾の追加、削除または変更を行うときに一定に保つ位置プロパティ。次の値のいずれかとして指定します。
'outerposition'— タイトルや軸ラベルなどの装飾の追加、削除、または変更を行うときに、OuterPositionプロパティが一定に保たれます。位置の調整が必要な場合、MATLAB® はInnerPositionプロパティを調整します。'innerposition'— タイトルや軸ラベルなどの装飾の追加、削除、または変更を行うときに、InnerPositionプロパティが一定に保たれます。位置の調整が必要な場合、MATLAB はOuterPositionプロパティを調整します。
メモ
親コンテナーが TiledChartLayout オブジェクトの場合、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
位置の単位。次の表の値として指定します。特定単位でチャートの位置を変更するには、Units プロパティを設定してから Position プロパティを指定します。単一のコマンドで (名前と値のペアを使用して) Units プロパティと Position プロパティを指定する場合は、必ず Units を Position より前に指定してください。
Units | 説明 |
|---|---|
'normalized' (既定) | 親コンテナー (通常は Figure、パネル、またはタブ) を基準として正規化されます。コンテナーの左下隅は (0,0) に、右上隅は (1,1) にマッピングされます。 |
'inches' | インチ。 |
'centimeters' | センチメートル。 |
'characters' | グラフィックス ルート オブジェクトの既定のフォントに基づきます。
|
'points' | タイポグラフィのポイント。1 ポイントは 1/72 インチです。 |
'pixels' | ピクセル。 Windows® システムおよび Macintosh システムでは、ピクセルのサイズは 1/96 インチです。このサイズはシステムの解像度に依存しません。 Linux® システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。 |
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
レイアウト オプション。TiledChartLayoutOptions オブジェクトとして指定します。このプロパティは、チャートのインスタンスがタイル表示チャート レイアウトの子である場合のオプションを指定します。インスタンスがタイル表示チャート レイアウトの子ではない場合 (たとえば、Figure またはパネルの子である場合)、このプロパティは空で、効果はありません。それ以外の場合は、TiledChartLayoutOptions オブジェクトの Tile プロパティと TileSpan プロパティを設定することにより、チャートをレイアウト内に配置できます。
たとえば、次のコードは、タイル表示チャート レイアウトの 3 番目のタイルにチャート オブジェクト c を配置します。
c.Layout.Tile = 3;
複数のタイルにわたってチャートを広げるには、TileSpan プロパティを 2 要素ベクトルとして指定します。たとえば、次のチャートは 2 行 3 列のタイルに広がります。
c.Layout.TileSpan = [2 3];
メモ
タイル表示チャート レイアウトは、getAxes メソッドによって返される座標軸ではサポートされません。代わりに、タイル表示チャート レイアウトにチャートのインスタンスを配置できます。
属性:
GetAccess | public |
SetAccess | public |
可視性の状態。'on' または 'off' として指定するか、数値または logical の 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。
'on'— チャートを表示します。'off'— チャートを削除せずに非表示にします。非表示のときでも、チャートのプロパティにはアクセスできます。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
GetObservable | true |
SetObservable | true |
チャートの親コンテナー。Figure、Panel、Tab、または TiledChartLayout オブジェクトとして指定します。
属性:
GetAccess | public |
SetAccess | public |
Transient | true |
Dependent | true |
GetObservable | true |
SetObservable | true |
NonCopyable | true |
チャート オブジェクト ハンドルを、オブジェクト ハンドルの親に対する子のリストに表示するかどうか。次のいずれかの値として指定します。
'on'— チャート オブジェクト ハンドルは常に表示されます。'off'— チャート オブジェクト ハンドルは常に非表示です。このオプションは、他の関数によるチャートの意図しない変更を防止するために役立ちます。その関数の実行中にハンドルを一時的に非表示にするには、HandleVisibilityを'off'に設定します。'callback'— チャート オブジェクト ハンドルはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションは、コマンド ウィンドウ内のオブジェクトへのアクセスをブロックしますが、コールバック関数にはアクセスを許可します。
オブジェクトがチャートの親オブジェクトの Children プロパティ内にリストされていない場合、オブジェクト階層の検索またはハンドル プロパティのクエリによってオブジェクト ハンドルを取得する関数は、そのオブジェクト ハンドルを返すことができません。このような関数には、get、findobj、gca、gcf、gco、newplot、cla、clf、close があります。
非表示のオブジェクト ハンドルは有効なままです。ルートの ShowHiddenHandles プロパティを 'on' に設定すると、HandleVisibility プロパティの設定にかかわらず、すべてのオブジェクト ハンドルがリストされます。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
GetObservable | true |
SetObservable | true |
メソッド
例
青色の点線を平滑化バージョンのラインとともに使用して一連のデータをプロットする、SmoothPlot というクラスを定義します。
このクラスを定義するには、次の機能をもつ以下のクラス定義を含む SmoothPlot.m というファイルを作成します。
元のラインの x 座標データと y 座標データを保存する
XDataとYDataというパブリック プロパティ。滑らかなラインの色と幅を制御する
SmoothColorとSmoothWidthというパブリック プロパティ。元のデータと平滑化データの
Lineオブジェクトを保存するOriginalLineとSmoothLineというプライベート プロパティ。OriginalLineおよびSmoothLineを初期化するsetupメソッド。ユーザーがプロパティの値を変更したときにプロットを更新する
updateメソッド。平滑化バージョンの
YDataを計算するcreateSmoothDataメソッド。
classdef SmoothPlot < matlab.graphics.chartcontainer.ChartContainer properties XData (1,:) double = NaN YData (1,:) double = NaN SmoothColor (1,3) double {mustBeGreaterThanOrEqual(SmoothColor,0),... mustBeLessThanOrEqual(SmoothColor,1)} = [0.9290 0.6940 0.1250] SmoothWidth (1,1) double = 2 end properties(Access = private,Transient,NonCopyable) OriginalLine (1,1) matlab.graphics.chart.primitive.Line SmoothLine (1,1) matlab.graphics.chart.primitive.Line end methods(Access = protected) function setup(obj) % Create the axes ax = getAxes(obj); % Create the original and smooth lines obj.OriginalLine = plot(ax,NaN,NaN,'LineStyle',':'); hold(ax,'on') obj.SmoothLine = plot(ax,NaN,NaN); hold(ax,'off') end function update(obj) % Update line data obj.OriginalLine.XData = obj.XData; obj.OriginalLine.YData = obj.YData; obj.SmoothLine.XData = obj.XData; obj.SmoothLine.YData = createSmoothData(obj); % Update line color and width obj.SmoothLine.Color = obj.SmoothColor; obj.SmoothLine.LineWidth = obj.SmoothWidth; end function sm = createSmoothData(obj) % Calculate smoothed data v = ones(1,10)*0.1; sm = conv(obj.YData,v,'same'); end end end
次に、x と y のベクトルのペアを作成します。ChartContainer クラスによって提供される SmoothPlot コンストラクター メソッドを呼び出すことにより、x と y をプロットします。'XData' と 'YData' の名前と値のペアの引数を指定して、オブジェクトを c として返します。
x = 1:1:100; y = 10*sin(x./5) + 8*sin(10.*x + 0.5); c = SmoothPlot('XData',x,'YData',y);

c を使用して、滑らかなラインの色を赤に変更します。
c.SmoothColor = [1 0 0];

制限
ChartContainer クラスのすべてのサブクラスには、オーバーロードできない静的メソッド loadobj の組み込みの実装が自動的に含まれます。同様に、matlab.mixin.CustomElementSerialization から派生したクラスには、オーバーロードできない静的メソッド finalizeIncomingObject の組み込みの実装が自動的に含まれます。これらのメソッドをオーバーロードしようとしても、MATLAB ではこれらのメソッドの組み込みの実装が使用されます。
詳細
クラスを定義するときに、events ブロックを含めてチャートでイベントをリッスンすることができます。
HasCallbackProperty 属性を指定して events ブロックを定義する場合、MATLAB はブロック内の各イベントに対し、チャートにパブリック プロパティを作成します。ユーザーはこのプロパティを使用して、イベントがトリガーされると実行されるコールバック関数を定義できます。各プロパティの名前は、文字 Fcn が末尾に追加された対応するイベントの名前です。たとえば、ユーザーがクリックするとコールバック関数が実行されるチャートは、Clicked と呼ばれるイベントを定義できます。HasCallbackProperty 属性が指定されると、MATLAB はチャート オブジェクトに ClickedFcn という対応するパブリック プロパティを自動的に作成します。
たとえば、MyChart と呼ばれるチャート クラスに対する events ブロックを以下に示します。
events (HasCallbackProperty, NotifyAccess = protected)
Clicked
end
myfunction が実行されます。 c = MyChart('ClickedFcn',@myfunction)イベントをトリガーし、コールバック関数を実行するには、notify メソッドを使用します。詳細については、イベントとリスナーの概要を参照してください。
バージョン履歴
R2019b で導入ChartContainer サブクラスのインスタンスを作成し、プロパティの名前と値のペアの引数をコンストラクターに渡すと、プロパティ値は setup メソッドの実行後に代入されます。R2019b では、プロパティ値は setup メソッドの実行前に割り当てられます。
使用しているクラスの setup メソッドがオブジェクト上のプロパティの値を参照する場合は、次のいずれかの方法でコードを更新できます。
プロパティを定義するときに既定値を割り当てる。
プロパティを参照するコードを
updateメソッドに移動する。
R2020a 以降、ActivePositionProperty の設定または取得は推奨されていません。代わりに、PositionConstraint プロパティを使用してください。
現時点で ActivePositionProperty を削除する予定はありませんが、関数 set、get、または properties をチャート オブジェクトで呼び出す際にこのプロパティはリストされなくなりました。
コードを更新するには、以下の変更を行います。
ActivePositionPropertyのすべてのインスタンスをPositionConstraintに置き換える。"position"オプションへのすべての参照を"innerposition"オプションに置き換える。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)