setup

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

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

Синтаксис

setup(obj)

Описание

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

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

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

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

Примеры

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

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

  • Четыре публичных свойств: XData, YData, SmoothColor, и SmoothWidth.

  • Два частных свойств: OriginalLine и SmoothLine.

  • setup метод, который выполняет эти задачи:

    • Получает оси для графика путем вызова getAxes метод.

    • Создает Line объект OriginalLine со стилем точечной линии. Цвет не задан для этой линии, таким образом, MATLAB® использует цвет по умолчанию, который является синим.

    • Создает Line объект SmoothLine со стилем сплошной линии, и выбирает цвет и ширину линии согласно свойствам SmoothColor класса и SmoothWidth.

    • Устанавливает состояние удержания осей на 'off'.

  • 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)
            % Get the axes
            ax = getAxes(obj);
            
            % Create the original and smooth lines
            obj.OriginalLine = plot(ax,obj.XData,obj.YData,'LineStyle',':');
            hold(ax,'on')
            obj.SmoothLine = plot(ax,NaN,NaN,'LineStyle','-',...
                'Color',obj.SmoothColor,'LineWidth',obj.SmoothWidth);
            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];

Введенный в R2019b