matlab.graphics.chartcontainer.ChartContainer class

Пакет: 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

Для получения информации об атрибутах класса см. Атрибуты класса.

Свойства

развернуть все

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

  • 'innerposition'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''inches'.
'centimeters''centimeters'.
'characters'

На основе стандартного шрифта графического корневого объекта:

  • Ширина символов = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

'points'Точки книгопечатания. Один пункт равен 1/72 дюйма.
'pixels'

Расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows®:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах 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' — Скройте график, не удаляя его. Все еще можно получить доступ к свойствам графика, когда он не отображается.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
GetObservable
true
SetObservable
true

Родительский контейнер графика, заданного как FigureПанель, Tab, или TiledChartLayout объект.

Атрибуты:

GetAccess
public
SetAccess
public
Transient
true
Dependent
true
GetObservable
true
SetObservable
true
NonCopyable
true

Видимость объекта диаграммы обрабатывает в его родительском списке дочерних элементов, заданных как одно из этих значений:

  • 'on' — Указатель объекта диаграммы всегда отображается.

  • 'off' — Указатель объекта диаграммы невидим в любом случае. Эта опция полезна для предотвращения непреднамеренных изменений в графике другой функцией. Чтобы временно скрыть указатель во время выполнения этой функции, установите HandleVisibility к 'off'.

  • 'callback' — Указатель объекта диаграммы отображается из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки. Эта опция блокирует доступ к объекту в Командном окне, но это позволяет функциям обратного вызова получать доступ к нему.

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

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)
            % Get the axes
            ax = getAxes(obj);
            
            % Create the orginal and smooth lines
            obj.OriginalLine = plot(ax,obj.XData,obj.YData,'LineStyle',':');
            hold(ax,'on')
            obj.SmoothLine = plot(ax,NaN,NaN,'LineStyle','-',...
                'Color',obj.SmoothColor,'LineWidth',obj.SmoothWidth);
            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];

Введенный в R2019b