exponenta event banner

установка

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

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

Синтаксис

setup(obj)

Описание

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

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

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

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

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

Признаки

Abstracttrue
Protectedtrue

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

Примеры

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

Определение класса с именем SmoothPlot который отображает набор данных с использованием синей пунктирной линии со сглаженной версией линии.

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

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

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

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

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

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

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