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 свойство родительского объекта графика, затем функционирует, которые получают указатели на объект путем поиска иерархии объектов, или запрос свойств указателя не может возвратить его. Это включает get, findobj, gca, gcf, gco, newplot, cla, clf, и 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 частные свойства, которые хранят 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