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
クラスです。
プロパティ
InnerPosition
— 余白を除いたチャートのサイズと位置
[left bottom width height]
軸ラベルや目盛りなどの装飾用の余白を除いた、チャートのサイズと位置。このプロパティは、[left bottom width height]
の形式のベクトルとして指定します。値は、Units
プロパティで指定した単位で表されます。
left
— 親コンテナーの左端から、余白を除くチャートの内側の左端までの距離。通常、親コンテナーは Figure、パネル、またはタブです。bottom
— 親コンテナーの下端から、余白を除くチャートの内側の下端までの距離。width
— 余白を除くチャートの幅。height
— 余白を除くチャートの高さ。
メモ
チャートの親が TiledChartLayout
である場合は、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
OuterPosition
— 余白を含むチャートのサイズと位置
[left bottom width height]
軸ラベルや目盛りなどの装飾用の余白を含む、チャートのサイズと位置。このプロパティは、[left bottom width height]
の形式のベクトルとして指定します。値は、Units
プロパティで指定した単位で表されます。
left
— 親コンテナーの左端から、余白を含むチャートの外側の左端までの距離。通常、親コンテナーは Figure、パネル、またはタブです。bottom
— 親コンテナーの下端から、余白を含むチャートの外側の下端までの距離。width
— 余白を含むチャートの幅。height
— 余白を含むチャートの高さ。
メモ
チャートの親が TiledChartLayout
である場合は、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
Position
— 余白を除いたチャートのサイズと位置
[left bottom width height]
軸ラベルや目盛りなどの装飾用の余白を除いた、チャートのサイズと位置。このプロパティは、[left bottom width height]
の形式のベクトルとして指定します。このプロパティは、InnerPosition
プロパティと等価です。
メモ
チャートの親が TiledChartLayout
である場合は、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
PositionConstraint
— 一定に保つ位置
'outerposition'
| 'innerposition'
装飾の追加、削除または変更を行うときに一定に保つ位置プロパティ。次の値のいずれかとして指定します。
'outerposition'
— タイトルや軸ラベルなどの装飾の追加、削除、または変更を行うときに、OuterPosition
プロパティが一定に保たれます。位置の調整が必要な場合、MATLAB® はInnerPosition
プロパティを調整します。'innerposition'
— タイトルや軸ラベルなどの装飾の追加、削除、または変更を行うときに、InnerPosition
プロパティが一定に保たれます。位置の調整が必要な場合、MATLAB はOuterPosition
プロパティを調整します。
メモ
親コンテナーが TiledChartLayout
オブジェクトの場合、このプロパティを設定しても効果はありません。
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
Units
— 位置の単位
'normalized'
(既定値) | 'inches'
| 'centimeters'
| 'characters'
| 'points'
| 'pixels'
位置の単位。次の表の値として指定します。特定単位でチャートの位置を変更するには、Units
プロパティを設定してから Position
プロパティを指定します。単一のコマンドで (名前と値のペアを使用して) Units
プロパティと Position
プロパティを指定する場合は、必ず Units
を Position
より前に指定してください。
Units | 説明 |
---|---|
'normalized' (既定) | 親コンテナー (通常は Figure、パネル、またはタブ) を基準として正規化されます。コンテナーの左下隅は (0,0) に、右上隅は (1,1) にマッピングされます。 |
'inches' | インチ。 |
'centimeters' | センチメートル。 |
'characters' | グラフィックス ルート オブジェクトの既定のフォントに基づきます。
|
'points' | タイポグラフィのポイント。1 ポイントは 1/72 インチです。 |
'pixels' | Windows® および Macintosh システムでのピクセル単位の距離は、システムの解像度に依存しません。
Linux® システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。 |
属性:
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
Layout
— レイアウト オプション
空の LayoutOptions
配列 (既定値) | TiledChartLayoutOptions
レイアウト オプション。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 |
Visible
— 可視性の状態
'on'
(既定値) | on/off logical 値
可視性の状態。'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 |
Parent
— 親コンテナー
Figure
オブジェクト (既定値) | Panel
オブジェクト | Tab
オブジェクト | TiledChartLayout
オブジェクト
チャートの親コンテナー。Figure
、Panel
、Tab
、または TiledChartLayout
オブジェクトとして指定します。
属性:
GetAccess | public |
SetAccess | public |
Transient | true |
Dependent | true |
GetObservable | true |
SetObservable | true |
NonCopyable | true |
HandleVisibility
— オブジェクト ハンドルの可視性
'on'
(既定値) | 'off'
チャート オブジェクト ハンドルを、オブジェクト ハンドルの親に対する子のリストに表示するかどうか。次のいずれかの値として指定します。
'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];
詳細
チャート用にユーザー定義のコールバックを有効にする
クラスを定義するときに、events
ブロックを含めてチャートでイベントをリッスンすることができます。
HasCallbackProperty
属性を指定して events
ブロックを定義する場合、MATLAB はブロック内の各イベントに対し、チャートにパブリック プロパティを作成します。ユーザーはこのプロパティを使用して、イベントがトリガーされると実行されるコールバック関数を定義できます。各プロパティの名前は、文字 Fcn
が末尾に追加された対応するイベントの名前です。たとえば、ユーザーがクリックするとコールバック関数が実行されるチャートは、Clicked
と呼ばれるイベントを定義できます。HasCallbackProperty
属性が指定されると、MATLAB はチャート オブジェクトに ClickedFcn
という対応するパブリック プロパティを自動的に作成します。
たとえば、MyChart
と呼ばれるチャート クラスに対する events
ブロックを以下に示します。
events (HasCallbackProperty, NotifyAccess = protected)
Clicked
end
myfunction
が実行されます。 c = MyChart('ClickedFcn',@myfunction)
イベントをトリガーし、コールバック関数を実行するには、notify
メソッドを使用します。詳細については、イベントとリスナーの概要を参照してください。
バージョン履歴
R2019b で導入R2020a: ChartContainer
サブクラスが setup
メソッドの実行後にプロパティ値を割り当てる
ChartContainer
サブクラスのインスタンスを作成し、プロパティの名前と値のペアの引数をコンストラクターに渡すと、プロパティ値は setup
メソッドの実行後に代入されます。R2019b では、プロパティ値は setup
メソッドの実行前に割り当てられます。
使用しているクラスの setup
メソッドがオブジェクト上のプロパティの値を参照する場合は、次のいずれかの方法でコードを更新できます。
プロパティを定義するときに既定値を割り当てる。
プロパティを参照するコードを
update
メソッドに移動する。
R2020a: ActivePositionProperty
は非推奨
R2020a 以降、ActivePositionProperty
の設定または取得は推奨されていません。代わりに、PositionConstraint
プロパティを使用してください。
現時点で ActivePositionProperty
を削除する予定はありませんが、関数 set
、get
、または properties
をチャート オブジェクトで呼び出す際にこのプロパティはリストされなくなりました。
コードを更新するには、以下の変更を行います。
ActivePositionProperty
のすべてのインスタンスをPositionConstraint
に置き換える。"position"
オプションへのすべての参照を"innerposition"
オプションに置き換える。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)