Пакет: 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 |
Для получения информации об атрибутах класса см. раздел «Атрибуты класса».
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'
- The OuterPosition
свойство остается постоянным, когда вы добавляете, удаляете или изменяете украшения, такие как заголовок или подпись по осям. Если необходимы какие-либо корректировки положения, MATLAB® настраивает InnerPosition
свойство.
'innerposition'
- The 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' | На основе шрифта по умолчанию для графического корневого объекта:
|
'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'
, или как числовое или логическое 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 |
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.