Пакет: 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' | Дюймов. |
'centimeters' | Сантиметров. |
'characters' | На основе шрифта по умолчанию для объекта graphics root:
|
'points' | Точки типографии. Одна точка равна 1/72 дюйма. |
'pixels' | Расстояния в пикселях не зависят от разрешения системы в системах Windows ® и Macintosh :
В системах 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Состояние видимости, указанное как '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 |
Parent - Родительский контейнерFigure объект (по умолчанию) | Panel объект | Tab объект | TiledChartLayout объектРодительский контейнер диаграммы, указанный как Figure, Panel, 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 объекты для исходных и сглаженных данных.
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];

При определении класса можно включить 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.