getLayout

Класс: matlab.graphics.chartcontainer.ChartContainer
Пакет: matlab.graphics.chartcontainer

Получите мозаичное размещение графика для подкласса контейнера графика

Синтаксис

tcl = getLayout(obj)

Описание

tcl = getLayout(obj) возвращает мозаичное размещение графика для объекта диаграммы, который наследовался matlab.graphics.chartcontainer.ChartContainer базовый класс.

Входные параметры

развернуть все

Объект класса, который наследовался matlab.graphics.chartcontainer.ChartContainer базовый класс.

Выходные аргументы

развернуть все

TiledChartLayout объект. Используйте tcl когда вы разрабатываете график, который содержит полярный график, географический график или мозаичное размещение нескольких графиков. Можно сконфигурировать определенные аспекты размещения, такие как количество мозаик, местоположение каждого объекта осей и интервал между мозаиками.

Примеры

развернуть все

Задайте класс под названием CartPolarPlot это отображает данные на графике в Декартовых и полярных координатах.

Чтобы задать класс, создайте файл под названием CartPolarPlot.m это содержит следующее определение класса с этими функциями:

  • Три публичных свойств: XData и YData хранить координатные данные и LineColor управлять цветом линий

  • Четыре частных свойств, которые хранят эти две линии и объекты осей

  • setup метод, который конфигурирует размещение, создает оси и инициализирует два Line объекты

  • update метод, который обновляет Line объекты, когда пользователь изменяет значение одних или нескольких публичных свойств

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 - координаты. Затем постройте координаты путем вызова CartPolarPlot метод конструктора с 'XData' и 'YData' аргументы в виде пар имя-значение.

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

Введенный в R2020a