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