matlab.graphics.chartcontainer.ChartContainer class

Пакет: matlab.graphics.chartcontainer

Базовый класс для разработки объектов диаграммы

Описание

matlab.graphics.chartcontainer.ChartContainer класс для определения вашего собственного класса объектов диаграммы. Когда вы задаете подкласс этого базового класса, можно использовать ChartContainer свойства и методы, чтобы создать ваши объекты диаграммы. Задайте этот синтаксис на первой линии вашего файла определения класса, чтобы непосредственно наследоваться ChartContainer класс, где MyChart имя вашего объекта:

classdef MyChart < matlab.graphics.chartcontainer.ChartContainer

matlab.graphics.chartcontainer.ChartContainer классом является handle класс.

Атрибуты класса

Abstract
true
HandleCompatible
true

Для получения информации об атрибутах класса см. Атрибуты класса.

Свойства

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

Стройте диаграмму размера и местоположения, исключая поля для художественных оформлений, таких как подписи по осям и отметки деления. Задайте это свойство как вектор формы [left bottom width height]. Значения находятся в модулях, заданных Units свойство.

  • left — Расстояние от левого края родительского контейнера к внутреннему левому краю графика, который исключает поля. Как правило, родительский контейнер является фигурой, панелью или вкладкой.

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

  • width — Ширина графика, исключая поля.

  • height — Высота графика, исключая поля.

Примечание

Установка этого свойства не оказывает влияния, когда родительским элементом графика является TiledChartLayout.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Стройте диаграмму размера и местоположения, включая поля для художественных оформлений, таких как подписи по осям и отметки деления. Задайте это свойство как вектор формы [left bottom width height]. Значения находятся в модулях, заданных Units свойство.

  • left — Расстояние от левого края родительского контейнера к внешнему левому краю графика, который включает поля. Как правило, родительский контейнер является фигурой, панелью или вкладкой.

  • bottom — Расстояние от базового края родительского контейнера к внешнему базовому краю графика, который включает поля.

  • width — Ширина графика, включая поля.

  • height — Высота графика, включая поля.

Примечание

Установка этого свойства не оказывает влияния, когда родительским элементом графика является TiledChartLayout.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Стройте диаграмму размера и местоположения, исключая поля для художественных оформлений, таких как подписи по осям и отметки деления. Задайте это свойство как вектор формы [left bottom width height]. Это свойство эквивалентно InnerPosition свойство.

Примечание

Установка этого свойства не оказывает влияния, когда родительским элементом графика является TiledChartLayout.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Свойство Position содержать постоянный при добавлении, удаляя или изменяя художественные оформления в виде одного из следующих значений:

  • 'outerposition'OuterPosition свойство остается постоянным, когда вы добавляете, удаляете, или художественные оформления изменения, такие как заголовок или подпись по осям. Если какие-либо позиционные корректировки необходимы, MATLAB® настраивает InnerPosition свойство.

  • 'innerposition'InnerPosition свойство остается постоянным, когда вы добавляете, удаляете, или художественные оформления изменения, такие как заголовок или подпись по осям. Если какие-либо позиционные корректировки необходимы, MATLAB настраивает OuterPosition свойство.

Примечание

Установка этого свойства не оказывает влияния, когда родительским контейнером является TiledChartLayout.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Модули положения в виде значения из следующей таблицы. Чтобы сменить положение графика в определенных модулях, установите Units свойство прежде, чем задать Position свойство. Если вы задаете Units и Position свойства в одной команде (использующий пары "имя-значение"), убедиться задать Units перед Position.

UnitsОписание
'normalized' (значение по умолчанию)Нормированный относительно родительского контейнера, который обычно является фигурой, панелью или вкладкой. Левый нижний угол контейнера сопоставляет с (0,0), и правый верхний угол сопоставляет с (1,1).
'inches''inches'.
'centimeters''centimeters'.
'characters'

На основе стандартного шрифта графического корневого объекта:

  • Ширина символов = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

'points'Точки книгопечатания. Один пункт равен 1/72 дюйма.
'pixels'

Расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows®:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

В системах Linux® размер пикселя определяется вашим системным разрешением.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Параметры макета в виде TiledChartLayoutOptions объект. Это свойство задает опции, когда экземпляр вашего графика является дочерним элементом мозаичного размещения графика. Если экземпляр не является дочерним элементом мозаичного размещения графика (например, это - дочерний элемент фигуры или панели), то это свойство пусто и не оказывает влияния. В противном случае можно расположить график в размещении путем установки Tile и TileSpan свойства на TiledChartLayoutOptions объект.

Например, этот код помещает объект диаграммы c в третью мозаику мозаичного размещения графика.

c.Layout.Tile = 3;

Чтобы заставить график охватить несколько мозаик, задайте TileSpan свойство как двухэлементный вектор. Например, этот график охватывает 2 строки и 3 столбцы мозаик.

c.Layout.TileSpan = [2 3];

Примечание

Мозаичные размещения графика не поддержаны для осей, возвращенных getAxes метод. Вместо этого можно поместить экземпляр графика в мозаичное размещение графика.

Атрибуты:

GetAccess
public
SetAccess
public

Состояние видимости в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • 'on' — Отобразите график.

  • 'off' — Скройте график, не удаляя его. Все еще можно получить доступ к свойствам графика, когда он не отображается.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
GetObservable
true
SetObservable
true

Родительский контейнер графика в виде FigureПанель, Tab, или TiledChartLayout объект.

Атрибуты:

GetAccess
public
SetAccess
public
Transient
true
Dependent
true
GetObservable
true
SetObservable
true
NonCopyable
true

Видимость объекта диаграммы обрабатывает в его родительском списке дочерних элементов в виде одного из этих значений:

  • 'on' — Указатель объекта диаграммы всегда отображается.

  • 'off' — Указатель объекта диаграммы невидим в любом случае. Эта опция полезна для предотвращения непреднамеренных изменений в графике другой функцией. Чтобы временно скрыть указатель во время выполнения этой функции, установите HandleVisibility к 'off'.

  • 'callback' — Указатель объекта диаграммы отображается из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки. Эта опция блокирует доступ к объекту в Командном окне, но это позволяет функциям обратного вызова получать доступ к нему.

Если объект не перечислен в Children свойство родительского объекта графика, затем функционирует, которые получают указатели на объект путем поиска иерархии объектов, или запрос свойств указателя не может возвратить его. Это включает getfindobjgcagcfgconewplotclaclf, и close.

Скрытые указатели на объекты все еще действительны. Установите корневой ShowHiddenHandles свойство к 'on' перечислять все указатели на объект, независимо от их HandleVisibility установка свойства.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
GetObservable
true
SetObservable
true

Методы

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

Примеры

свернуть все

Задайте класс под названием 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

Не рекомендуемый запуск в R2020a

Введенный в R2019b