Main Content

getLayout

クラス: matlab.graphics.chartcontainer.ChartContainer
名前空間: matlab.graphics.chartcontainer

チャート コンテナー サブクラスのタイル表示チャート レイアウトを取得

R2020a 以降

構文

tcl = getLayout(obj)

説明

tcl = getLayout(obj)matlab.graphics.chartcontainer.ChartContainer 基底クラスから継承するチャート オブジェクトのタイル表示チャート レイアウトを返します。

入力引数

すべて展開する

matlab.graphics.chartcontainer.ChartContainer 基底クラスから継承するクラスのオブジェクト。

出力引数

すべて展開する

TiledChartLayout オブジェクト。極座標プロット、地理プロット、または複数のプロットのタイル配置が含まれるチャートを作成している場合、tcl を使用します。タイルの数、各 axes オブジェクトの位置、タイルの間隔など、レイアウトの一部の特性を設定できます。

属性

Protectedtrue

メソッドの属性の詳細については、メソッドの属性を参照してください。

すべて展開する

直交座標と極座標でデータをプロットする CartPolarPlot と呼ばれるクラスを定義します。

このクラスを定義するには、次の機能をもつ以下のクラス定義を含む CartPolarPlot.m というファイルを作成します。

  • 座標データを保存する XDataYData、およびラインの色を制御する LineColor の 3 つのパブリック プロパティ

  • 2 つの line オブジェクトと axes オブジェクトを保存する 4 つのプライベート プロパティ

  • レイアウトを設定し、座標軸を作成し、2 つの Line オブジェクトを初期化する setup メソッド

  • ユーザーが 1 つ以上のパブリック プロパティの値を変更した場合に Line オブジェクトを更新する update メソッド

classdef CartPolarPlot < matlab.graphics.chartcontainer.ChartContainer
    properties
        XData (1,:) double = NaN
        YData (1,:) double = NaN
        LineColor (1,3) double {mustBeGreaterThanOrEqual(LineColor,0),...
            mustBeLessThanOrEqual(LineColor,1)} = [.5 0 1]
    end
    properties(Access = private,Transient,NonCopyable)
        CartesianLine (1,1) matlab.graphics.chart.primitive.Line
        PolarLine (1,1) matlab.graphics.chart.primitive.Line
        CartesianAx (1,1) matlab.graphics.axis.Axes
        PolarAx (1,1) matlab.graphics.axis.PolarAxes
    end
    
    methods(Access = protected)
        function setup(obj)
            % Get the layout and create the axes
            tcl = getLayout(obj);
            tcl.GridSize = [1 2];
            obj.CartesianAx = axes(tcl);
            obj.PolarAx = polaraxes(tcl);
            
            % Move the polar axes to the second tile
            obj.PolarAx.Layout.Tile = 2;
            
            % Create the Cartesian and polar lines
            obj.CartesianLine = plot(obj.CartesianAx,NaN,NaN);
            obj.PolarLine = polarplot(obj.PolarAx,NaN,NaN);
        end
        function update(obj)
            % Update Cartesian line
            obj.CartesianLine.XData = obj.XData;
            obj.CartesianLine.YData = obj.YData;
            obj.CartesianLine.Color = obj.LineColor;
            
            % Update polar line
            obj.PolarLine.Color = obj.LineColor;
            obj.PolarLine.ThetaData = obj.XData;
            obj.PolarLine.RData = obj.YData;
        end
    end
end

次に、x 座標と y 座標のセットを作成します。その後、'XData''YData' の名前と値のペアの引数を指定して CartPolarPlot コンストラクター メソッドを呼び出し、座標軸をプロットします。

x = 0:0.01:2*pi;
y = sin(2*x).*cos(2*x);
CartPolarPlot('XData',x,'YData',y);

バージョン履歴

R2020a で導入