Пакет: 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 |
Для получения информации об атрибутах класса см. Атрибуты класса.
InnerPosition — Стройте диаграмму размера и местоположения, исключая поля[left bottom width height]Стройте диаграмму размера и местоположения, исключая поля для художественных оформлений, таких как подписи по осям и отметки деления. Задайте это свойство как вектор из формы [left bottom width height]. Значения находятся в модулях, заданных Units свойство.
left — Расстояние от левого края родительского контейнера к внутреннему левому краю графика, который исключает поля. Как правило, родительский контейнер является фигурой, панелью или вкладкой.
bottom — Расстояние от базового края родительского контейнера к внутреннему базовому краю графика, который исключает поля.
width — Ширина графика, исключая поля.
height — Высота графика, исключая поля.
Примечание
Установка этого свойства не оказывает влияния, когда родительским элементом графика является TiledChartLayout.
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
OuterPosition — Стройте диаграмму размера и местоположения, включая поля[left bottom width height]Стройте диаграмму размера и местоположения, включая поля для художественных оформлений, таких как подписи по осям и отметки деления. Задайте это свойство как вектор из формы [left bottom width height]. Значения находятся в модулях, заданных Units свойство.
left — Расстояние от левого края родительского контейнера к внешнему левому краю графика, который включает поля. Как правило, родительский контейнер является фигурой, панелью или вкладкой.
bottom — Расстояние от базового края родительского контейнера к внешнему базовому краю графика, который включает поля.
width — Ширина графика, включая поля.
height — Высота графика, включая поля.
Примечание
Установка этого свойства не оказывает влияния, когда родительским элементом графика является TiledChartLayout.
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
Position — Стройте диаграмму размера и местоположения, исключая поля[left bottom width height]Стройте диаграмму размера и местоположения, исключая поля для художественных оформлений, таких как подписи по осям и отметки деления. Задайте это свойство как вектор из формы [left bottom width height]. Это свойство эквивалентно InnerPosition свойство.
Примечание
Установка этого свойства не оказывает влияния, когда родительским элементом графика является TiledChartLayout.
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
PositionConstraint — Положение, чтобы содержать постоянный'outerposition' | 'innerposition'Свойство Position содержать постоянный при добавлении, удаляя или изменяя художественные оформления в виде одного из следующих значений:
'outerposition' — OuterPosition свойство остается постоянным, когда вы добавляете, удаляете, или художественные оформления изменения, такие как заголовок или подпись по осям. Если какие-либо позиционные корректировки необходимы, MATLAB® настраивает InnerPosition свойство.
'innerposition' — InnerPosition свойство остается постоянным, когда вы добавляете, удаляете, или художественные оформления изменения, такие как заголовок или подпись по осям. Если какие-либо позиционные корректировки необходимы, MATLAB настраивает OuterPosition свойство.
Примечание
Установка этого свойства не оказывает влияния, когда родительским контейнером является TiledChartLayout.
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
Units — Модули положения'normalized' (значение по умолчанию) | 'inches' | 'centimeters' | 'characters' | 'points' | 'pixels'Модули положения в виде значения из следующей таблицы. Чтобы сменить положение графика в определенных модулях, установите Units свойство прежде, чем задать Position свойство. Если вы задаете Units и Position свойства в одной команде (использующий пары "имя-значение"), убедиться задать Units перед Position.
Units | Описание |
|---|---|
'normalized' (значение по умолчанию) | Нормированный относительно родительского контейнера, который обычно является фигурой, панелью или вкладкой. Левый нижний угол контейнера сопоставляет с (0,0), и правый верхний угол сопоставляет с (1,1). |
'inches' | 'inches'. |
'centimeters' | 'centimeters'. |
'characters' | На основе стандартного шрифта графического корневого объекта:
|
'points' | Точки книгопечатания. Один пункт равен 1/72 дюйма. |
'pixels' | Расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows®:
В системах Linux® размер пикселя определяется вашим системным разрешением. |
GetAccess | public |
SetAccess | public |
Dependent | true |
NonCopyable | true |
Layout — Параметры макетаLayoutOptions массив (значение по умолчанию) | TiledChartLayoutOptionsПараметры макета в виде TiledChartLayoutOptions объект. Это свойство задает опции, когда экземпляр вашего графика является дочерним элементом мозаичного размещения графика. Если экземпляр не является дочерним элементом мозаичного размещения графика (например, это - дочерний элемент фигуры или панели), то это свойство пусто и не оказывает влияния. В противном случае можно расположить график в размещении путем установки Tile и TileSpan свойства на TiledChartLayoutOptions объект.
Например, этот код помещает объект диаграммы c в третью мозаику мозаичного размещения графика.
c.Layout.Tile = 3;
Чтобы заставить график охватить несколько мозаик, задайте TileSpan свойство как двухэлементный вектор. Например, этот график охватывает 2 строки и 3 столбцы мозаик.
c.Layout.TileSpan = [2 3];
Примечание
Мозаичные размещения графика не поддерживаются для осей, возвращенных getAxes метод. Вместо этого можно поместить экземпляр графика в мозаичное размещение графика.
GetAccess | public |
SetAccess | public |
Visible — Состояние видимости'on' (значение по умолчанию) | логическое значение включения - выключенияСостояние видимости в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
'on' — Отобразите график.
'off' — Скройте график, не удаляя его. Все еще можно получить доступ к свойствам графика, когда он не отображается.
GetAccess | public |
SetAccess | public |
Dependent | true |
GetObservable | true |
SetObservable | true |
Parent — Родительский контейнерFigure объект (значение по умолчанию) | Panel возразите | Tab возразите | TiledChartLayout объектРодительский контейнер графика в виде FigureПанель, Tab, или TiledChartLayout объект.
GetAccess | public |
SetAccess | public |
Transient | true |
Dependent | true |
GetObservable | true |
SetObservable | true |
NonCopyable | true |
HandleVisibility — Видимость указателя на объект'on' (значение по умолчанию) | 'off'Видимость объекта диаграммы обрабатывает в его родительском списке дочерних элементов в виде одного из этих значений:
'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];

При определении класса можно включать events блокируйтесь, чтобы сделать график, чтобы слушать события.
Если вы задаете events блокируйтесь с HasCallbackProperty атрибут, MATLAB создает общественную собственность на графике для каждого события в блоке. Ваши пользователи могут использовать свойства задать функции обратного вызова, которые выполняются, когда события инициированы. Имя каждого свойства является именем соответствующего события с буквами Fcn добавленный в конец. Например, график, который выполняет функцию обратного вызова, когда пользователь нажимает на график, может задать событие под названием Clicked. Когда HasCallbackProperty атрибут задан, MATLAB автоматически создает соответствующую общественную собственность под названием ClickedFcn на объекте диаграммы.
Например, вот events блокируйтесь для класса графиков под названием MyChart:
events (HasCallbackProperty, NotifyAccess = protected) Clicked end
myfunction выполняется. c = MyChart('ClickedFcn',@myfunction)Чтобы инициировать событие и выполнить функцию обратного вызова, используйте notify метод. Для получения дополнительной информации см. Обзор событий и Прослушиватели.
ChartContainer подклассы присваивают значения свойств после setup запуски методаПоведение изменяется в R2020a
Когда вы создаете экземпляр ChartContainer разделите на подклассы и передайте аргументы пары "имя-значение" свойства конструктору, значения свойств присвоены после setup запуски метода. В R2019b значения свойств присвоены перед setup запуски метода.
Если setup метод ваших ссылок класса значение свойства на объекте, можно обновить код любым из следующих способов:
Присвойте значение по умолчанию для свойства, когда вы зададите его.
Переместите код, который ссылается на свойство к update метод.
ActivePositionProperty не рекомендуетсяНе рекомендуемый запуск в R2020a
Запуск в R2020a, установка или получение ActivePositionProperty не рекомендуется. Используйте PositionConstraint свойство вместо этого.
Нет никаких планов удалить ActivePositionProperty в это время, но свойство больше не перечисляется, когда вы вызываете set, get, или properties функции на объекте диаграммы.
Чтобы обновить ваш код, внесите эти изменения:
Замените все экземпляры ActivePositionProperty с PositionConstraint.
Замените все ссылки на 'position' опция с 'innerposition' опция.
matlab.graphics.chartcontainer.mixin.Colorbar | matlab.graphics.chartcontainer.mixin.Legend
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.