メインコンテンツ

matlab.graphics.chartcontainer.ChartContainer クラス

R2026b

名前空間: matlab.graphics.chartcontainer

チャート オブジェクトの開発の基底クラス

説明

matlab.graphics.chartcontainer.ChartContainer は、チャート オブジェクトの独自のクラスを定義するためのクラスです。この基底クラスのサブクラスを定義するときは、ChartContainer のプロパティと、チャート オブジェクトを作成するメソッドを使用できます。ChartContainer クラスから直接継承するには、クラス定義ファイルの最初の行で次の構文を指定します。ここで、MyChart はオブジェクト名です。

classdef MyChart < matlab.graphics.chartcontainer.ChartContainer

matlab.graphics.chartcontainer.ChartContainer クラスは handle クラスです。

クラスの属性

抽象型
true
HandleCompatible
true

クラス属性の詳細については、クラスの属性を参照してください。

プロパティ

すべて展開する

軸ラベルや目盛りなどの装飾用の余白を除いた、チャートのサイズと位置。このプロパティは、[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'

グラフィックス ルート オブジェクトの既定のフォントに基づきます。

  • 文字の幅 = 文字 x の幅。

  • 文字の高さ = 2 行のテキストのベースライン間の距離。

'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 ではこれらのメソッドの組み込みの実装が使用されます。

詳細

すべて展開する

バージョン履歴

R2019b で導入

すべて展開する