exponenta event banner

класс matlab.graphics.chartcontainer.ChartContainer

Пакет: 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'Дюймов.
'centimeters'Сантиметров.
'characters'

На основе шрифта по умолчанию для объекта graphics root:

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

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

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

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

  • В системах Windows пиксель равен 1/96 дюйма.

  • В системах 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 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

  • 'on' - Отображение диаграммы.

  • 'off' - Скрыть диаграмму, не удаляя ее. Свойства диаграммы по-прежнему доступны, если она не видна.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
GetObservable
true
SetObservable
true

Родительский контейнер диаграммы, указанный как Figure, Panel, 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 объекты для исходных и сглаженных данных.

  • 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 изменилось поведение

Не рекомендуется начинать с R2020a

Представлен в R2019b