matlab.graphics.chartcontainer.ChartContainer class

Пакет: matlab.graphics.chartcontainer

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

Описание

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

classdef MyChart < matlab.graphics.chartcontainer.ChartContainer

The 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' - The OuterPosition свойство остается постоянным, когда вы добавляете, удаляете или изменяете украшения, такие как заголовок или подпись по осям. Если необходимы какие-либо корректировки положения, MATLAB® настраивает InnerPosition свойство.

  • 'innerposition' - The 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'

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

  • Ширина символа = ширина буквы 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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа 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