exponenta event banner

getLayout

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

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

Синтаксис

tcl = getLayout(obj)

Описание

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

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

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

Объект класса, наследующий от matlab.graphics.chartcontainer.ChartContainer базовый класс.

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

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

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

Признаки

Protectedtrue

Сведения об атрибутах методов см. в разделе Атрибуты метода.

Примеры

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

Определение класса с именем CartPolarPlot строит график данных в декартовых и полярных координатах.

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

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

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

  • A 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