Что такое subplot в matlab

Корпорация "Центр"

Иллюстрированный самоучитель по MatLab

Бывает, что в одном окне надо расположить несколько координатных осей с различными графиками без наложения их друг на друга. Для этого используются команды subplot, применяемые перед построением графиков:

  • subplot – создает новые объекты класса axes (подокна);
  • subplot(m.n.p) или subplot(mnp) – разбивает графическое окно на тхп подокон, при этом m – число подокон по горизонтали, n – число подокон по вертикали, а р– номер подокна, в которое будет выводиться текущий график (подокна отсчитываются последовательно по строкам);
  • subplot(H), где Н – дескриптор для объекта axes, дает альтернативный способ задания подокна для текущего графика;
  • subplot(‘position’,[left bottom width height]) – создает подокно с заданными нормализованными координатами (в пределах от 0.0 до 1.0);
  • subplot(lll) Hclf reset – удаляют все подокна и возвращают графическое окно в обычное состояние.

Рис. 6.42. Четыре графика различного типа, размещенных в подокнах одного окна

Следующий пример иллюстрирует применение команды subplot:

В этом примере последовательно строятся четыре графика различного типа, размещаемых в разных подокнах (рис. 6.42).

Следует отметить, что для всех графиков возможна индивидуальная установка дополнительных объектов, например титульных надписей, надписей по осям и т. д.

Что такое subplot в matlab

Create axes object in tiled positions

Description

subplot divides the current figure into rectangular panes that are numbered rowwise. Each pane contains an axes object. Subsequent plots are output to the current pane.

h = subplot(m,n,p) , or subplot(mnp) breaks the Figure window into an m -by- n matrix of small axes, selects the p th axes object for for the current plot, and returns the axis handle. The axes are counted along the top row of the Figure window, then the second row, etc. For example,

plots income on the top half of the window and outgo on the bottom half. If the CurrentAxes is nested in a uipanel, the panel is used as the parent for the subplot instead of the current figure. The new axes object becomes the current axes.

If p is a vector, it specifies an axes object having a position that covers all the subplot positions listed in p .

subplot(m,n,p,’replace’) If the specified axes object already exists, delete it and create a new axes.

subplot(m,n,p,’align’) positions the individual axes so that the plot boxes align, but does not prevent the labels and ticks from overlapping.

subplot(h) makes the axes object with handle h current for subsequent plotting commands.

subplot(‘Position’,[left bottom width height]) creates an axes at the position specified by a four-element vector. left , bottom , width , and height are in normalized coordinates in the range from 0.0 to 1.0.

h = subplot(. ) returns the handle to the new axes object.

If a subplot specification causes a new axes object to overlap any existing axes, then subplot deletes the existing axes object and uicontrol objects. However, if the subplot specification exactly matches the position of an existing axes object, then the matching axes object is not deleted and it becomes the current axes.

subplot(1,1,1) or clf deletes all axes objects and returns to the default subplot(1,1,1) configuration.

You can omit the parentheses and specify subplot as

where m refers to the row, n refers to the column, and p specifies the pane.

Special Case — subplot(111)

The command subplot(111) is not identical in behavior to subplot(1,1,1) and exists only for compatibility with previous releases. This syntax does not immediately create an axes object, but instead sets up the figure so that the next graphics command executes a clf reset (deleting all figure children) and creates a new axes object in the default position. This syntax does not return a handle, so it is an error to specify a return argument. (This behavior is implemented by setting the figure’s NextPlot property to replace .)

To plot income in the top half of a figure and outgo in the bottom half,

The following illustration shows four subplot regions and indicates the command used to create each.

The following combinations produce asymmetrical arrangements of subplots.

You can also use the colon operator to specify multiple locations if they are in sequence.

subplot

subplot( m , n , p ) делит текущую фигуру на m — n сетка и создает оси в положении, заданном p MATLAB ® положения подграфика чисел строкой. Первый подграфик является первым столбцом первой строки, второй подграфик является вторым столбцом первой строки и так далее. Если оси существуют в заданном положении, то эта команда делает оси текущими осями.

subplot( m , n , p , ‘replace’ ) удаляет существующие оси в положении p и создает новые оси.

subplot( m , n , p , ‘align’ ) создает новые оси так, чтобы поля графика были выровнены. Эта опция является поведением по умолчанию.

subplot( m , n , p , ax ) преобразует существующие оси, ax , в подграфик на том же рисунке.

subplot( ‘Position’ , pos ) создает оси в пользовательском положении, заданном pos . Используйте эту опцию, чтобы расположить подграфик, который не выравнивается с положениями сетки. Задайте pos как четырехэлементный вектор из формы [left bottom width height] . Если новые оси перекрывают существующие оси, то новые оси заменяют существующие оси.

subplot( ___ , Name,Value ) изменяет свойства осей с помощью одного или нескольких аргументов пары "имя-значение". Установите свойства осей после всех других входных параметров.

ax = subplot( ___ ) создает Axes объект, PolarAxes объект или GeographicAxes объект. Используйте ax сделать будущие модификации к осям.

subplot( ax ) делает оси заданными ax текущая система координат для родительской фигуры. Эта опция не заставляет родительский элемент изобразить текущую фигуру, если это уже не текущая фигура.

Примеры

Верхние и более низкие подграфики

Создайте фигуру с двумя сложенными подграфиками. Постройте синусоиду в каждом.

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

Квадрант подграфиков

Создайте фигуру, разделенную на четыре подграфика. Постройте синусоиду в каждом и заголовке каждый подграфик.

Figure contains 4 axes objects. Axes object 1 with title Subplot 1: sin(x) contains an object of type line. Axes object 2 with title Subplot 2: sin(2x) contains an object of type line. Axes object 3 with title Subplot 3: sin(4x) contains an object of type line. Axes object 4 with title Subplot 4: sin(8x) contains an object of type line.

Подграфики с различными размерами

Создайте фигуру, содержащую с тремя подграфиками. Создайте два подграфика через верхнюю половину фигуры и третий подграфик, который охватывает более низкую половину фигуры. Добавьте заголовки на каждый подграфик.

Figure contains 3 axes objects. Axes object 1 with title Subplot 1: Cosine contains an object of type line. Axes object 2 with title Subplot 2: Polynomial contains an object of type line. Axes object 3 with title Subplot 3 and 4: Both contains 2 objects of type line.

Замена подграфика на пустые оси

Создайте фигуру с четырьмя диаграммами стебель-листья случайных данных. Затем замените второй подграфик на пустые оси.

Figure contains 4 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains an object of type stem. Axes object 3 contains an object of type stem. Axes object 4 contains an object of type stem.

Figure contains 4 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains an object of type stem. Axes object 3 contains an object of type stem. Axes object 4 is empty.

Подграфики в пользовательских положениях

Создайте фигуру с двумя подграфиками, которые не выравниваются с положениями сетки. Задайте пользовательское положение для каждого подграфика.

Figure contains 2 axes objects. Axes object 1 with title First Subplot contains 4 objects of type line. Axes object 2 with title Second Subplot contains 4 objects of type bar.

Создание подграфиков с полярными осями

Создайте фигуру с двумя полярными осями. Создайте полярную линейную диаграмму в верхнем подграфике и полярной диаграмме поля точек в более низком подграфике.

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type scatter.

Изменение Свойств осей графика после создания

Создайте фигуру с двумя подграфиками. Присвойте Axes объекты к переменным ax1 и ax2 . Задайте Axes объекты как входные параметры к функциям построения графика, чтобы гарантировать, что функции строят в определенный подграфик.

Figure contains 2 axes objects. Axes object 1 contains 49 objects of type line. Axes object 2 contains 49 objects of type line.

Корпорация "Центр"

Измените оси путем установки свойств Axes объекты. Измените размер шрифта для верхнего подграфика и ширину линии для более низкого подграфика. Некоторые функции построения графика устанавливают свойства осей. Выполните функции построения графика прежде, чем задать свойства осей постараться не заменять существующие настройки свойства осей. Используйте запись через точку, чтобы установить свойства.

Figure contains 2 axes objects. Axes object 1 contains 49 objects of type line. Axes object 2 contains 49 objects of type line.

Создание подграфика текущей системой координат

Создайте фигуру с несколькими подграфиками. Сохраните Axes объекты в векторном ax . Затем делайте второй подграфик текущими осями. Создайте линейную диаграмму и измените пределы по осям для второго подграфика. По умолчанию графические функции предназначаются для текущей системы координат.

Figure contains 4 axes objects. Axes object 1 is empty. Axes object 2 with title Second Subplot contains an object of type line. Axes object 3 is empty. Axes object 4 is empty.

Преобразование существующих осей в подграфик

Создайте линейную диаграмму. Затем преобразуйте оси так, чтобы это был более низкий подграфик фигуры. Функция подграфика использует фигуру, на которой существовали исходные оси.

Figure contains an axes object. The axes object with title Sine Plot contains an object of type line.

Figure contains an axes object. The axes object with title Sine Plot contains an object of type line.

Преобразование осей в отдельных фигурах к подграфикам

Объедините оси, которые существуют на отдельных рисунках на одной фигуре с подграфиками.

Создайте два графика в двух различных фигурах. Присвойте Axes объекты к переменным ax1 и ax2 . Присвойте Legend возразите против переменной lgd .

Figure contains an axes object. The axes object with title Line Plot 1 contains an object of type line.

Figure contains an axes object. The axes object with title Line Plot 2 contains an object of type line. This object represents 2*Sin(x).

Создайте копии двух Axes объекты с помощью copyobj . Задайте родительские элементы скопированных осей как новая фигура. Поскольку легенды и шкалы палитры не становятся скопированными со связанными осями, копируют легенду с осями.

Входные параметры

m — Количество строк сетки
1 (значение по умолчанию) | положительное целое число

Количество строк сетки в виде положительного целого числа.

Типы данных: single | double

n — Количество столбцов сетки
1 (значение по умолчанию) | положительное целое число

Количество столбцов сетки в виде положительного целого числа.

Типы данных: single | double

p — Положение сетки для новых осей
скаляр | вектор

Положение сетки для новых осей в виде скаляра или вектора из положительных целых чисел.

Если p скалярное положительное целое число, затем subplot создает подграфик в положении сетки p .

Если p вектор из положительных целых чисел, затем subplot создает подграфик, который охватывает положения сетки, перечисленные в p .

Пример: subplot(2,3,1) создает подграфик в положении 1.

Пример: subplot(2,3,[2,5]) создает подграфик, охватывающий положения 2 и 5.

Пример: subplot(2,3,[2,6]) создает подграфик, охватывающий положения 2, 3, 5, и 6.

Типы данных: single | double

pos — Пользовательское положение для новых осей
четырехэлементный вектор

Пользовательское положение для новых осей в виде четырехэлементного вектора из формы [left bottom width height] .

left и bottom элементы задают положение нижнего левого угла подграфика относительно нижнего левого угла фигуры.

width и height элементы задают размерности подграфика.

Задайте значения между 0 и 1 это нормировано относительно внутренней части фигуры.

Примечание

При использовании скрипта, чтобы создать подграфики, MATLAB не завершает Position значение свойства до любого drawnow команда дается, или MATLAB возвращается, чтобы ждать пользовательской команды. Position значение свойства для подграфика подвержено изменениям до скрипта или обновляет график или выходы.

Пример: subplot(‘Position’,[0.1 0.1 0.45 0.45])

Типы данных: single | double

ax — Существующие оси, чтобы сделать текущим или преобразовать в подграфик
Axes возразите | PolarAxes возразите | GeographicAxes возразите | графический объект

Существующие оси, чтобы сделать текущим или преобразовать в подграфик в виде Axes объект, PolarAxes объект, GeographicAxes объект или графический объект с PositionConstraint свойство, такое как HeatmapChart объект.

Чтобы создать пустые полярные или географические оси в положении подграфика, задайте ax как polaraxes или geoaxes функция. Например, subplot(2,1,2,polaraxes) .

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, . NameN, ValueN .

Пример: subplot(m,n,p,’XGrid’,’on’)

Некоторые функции построения графика заменяют настройки свойства. Рассмотрите свойства осей установки после графического вывода. Свойства, которые можно установить, зависят от типа осей:

Для Осей декартовой системы координат смотрите Свойства осей графика .

Для полярных осей смотрите PolarAxes Properties .

Для географических осей смотрите GeographicAxes Properties .

Советы

Чтобы очистить содержимое фигуры, используйте clf . Например, вы можете очистить существующее размещение подграфика от фигуры прежде, чем создать новое размещение подграфика.

Чтобы наложить оси, используйте axes команда вместо этого. subplot функция удаляет существующие оси, которые перекрывают новые оси. Например, subplot(‘Position’,[.35 .35 .3 .3]) удаляет любые базовые оси, но axes(‘Position’,[.35 .35 .3 .3]) положения новые оси посреди фигуры, не удаляя базовые оси.

subplot(111) исключение и не идентичный в поведении к subplot(1,1,1) . Для назад совместимости, subplot(111) особый случай подграфика, который сразу не создает оси, но настраивает фигуру так, чтобы следующая графическая команда выполнила clf reset . Следующая графическая команда удаляет все дочерние элементы фигуры и создает новые оси в положении по умолчанию. subplot(111) не возвращает Axes возразите и ошибка происходит, если код задает возвращаемый аргумент.

Альтернативная функциональность

Используйте tiledlayout и nexttile функции, чтобы создать конфигурируемое плиточное размещение графиков. Параметры конфигурации включают:

Управление интервалом между графиками и вокруг ребер размещения

Опция для разделяемого заголовка наверху размещения

Опции для разделяемого x — и y — подписи по осям

Опция, чтобы управлять, имеет ли плиточное размещение фиксированный размер или переменный размер, который может обратное течение

Для получения дополнительной информации смотрите Построение нескольких графиков.

Корпорация "Центр"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *