setup

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

Настройте экземпляр подкласса контейнера графика

Синтаксис

setup(obj)

Описание

setup(obj) устанавливает начальное состояние графика. Это выполняется однажды, когда объект диаграммы создается. Любые значения свойств, переданные как аргументы пары "имя-значение" методу конструктора графика, присвоены после setup метод выполняется.

Задайте этот метод, чтобы выполнить код инициализации для каждого нового экземпляра вашего класса. Например, можно использовать этот метод, чтобы создать базовые графические объекты и установить начальные значения свойств на тех объектах.

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

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

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

Примеры

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

Задайте класс под названием SmoothPlot это строит набор данных с помощью точечной синей линии со сглаживавшей версией линии.

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

  • XData и YData публичные свойства, которые хранят x-и данные y-координаты для исходной линии.

  • SmoothColor и SmoothWidth публичные свойства, которые управляют цветом и шириной ровной линии.

  • OriginalLine и SmoothLine частные prperties, которые хранят Line объекты для исходных и сглаживавших данных.

  • setup метод, который инициализирует OriginalLine и SmoothLine.

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

  • createSmoothData метод, который вычисляет сглаживавшую версию YData.

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 векторы. Постройте x и y путем вызова SmoothPlot метод конструктора, который обеспечивается ChartContainer класс. Задайте '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];

Вопросы совместимости

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

Поведение изменяется в R2020a

Введенный в R2019b