Subplot matlab что это
Subplot matlab что это
1. Построение двумерных графиков функций
В результате вычислений в системе MATLAB обычно получается большой массив данных, который трудно анализировать без наглядной визуализации. Поэтому система визуализации, встроенная в MATLAB, придаёт этому пакету особую практическую ценность.
Графические возможности системы MATLAB являются мощными и разнообразными. В первую очередь целесообразно изучить наиболее простые в использовании возможности. Их часто называют высокоуровневой графикой. Это название отражает тот приятный факт, что пользователю нет никакой необходимости вникать во все тонкие и глубоко спрятанные детали работы с графикой.
Например, нет ничего проще, чем построить график функции одной вещественной переменной. Следующие команды
x = 0 : 0.01 : 2;
y = sin( x );
вычисляют массив y значений функции sin для заданного набора аргументов.
После этого одной единственной командой
удаётся построить вполне качественно выглядящий график функции:
MATLAB показывает графические объекты в специальных графических окнах, имеющих в заголовке слово Figure (изображение, внешний вид, фигура).
При построении графиков функций сразу проявляется тот факт, что очень большую часть работы MATLAB берёт на себя. Мы в командной строке ввели лишь одну команду, а система сама создала графическое окно, построила оси координат, вычислила диапазоны изменения переменных x и y; проставила на осях метки и соответствующие им числовые значения, провела через опорные точки график функции некоторым, выбранным по умолчанию, цветом; в заголовке графического окна надписала номер графика в текущем сеансе работы.
Если мы, не убирая с экрана дисплея первое графическое окно, вводим и исполняем ещё один набор команд
x = 0 : 0.01 : 2;
z = cos( x );
Если нужно второй график провести «поверх первого графика», то перед исполнением второй графической команды plot, нужно выполнить команду
hold on
которая предназначена для удержания текущего графического окна. В результате будет получено следующее изображение:
Того же самого можно добиться, потребовав от функции plot построить сразу несколько графиков в рамках одних и тех же осей координат:
x = 0 : 0.01 : 2;
y = sin( x ); z = cos( x );
У такого способа есть ещё одно (кроме экономии на команде hold on) преимущество, так как разные графики автоматически строятся разным цветом.
К недостаткам указанных способов построения нескольких графиков в пределах одних и тех же осей координат относится использование одного и того же диапазона изменения координат, что при несопоставимым значениях двух функций приведёт к плохому изображению графика одной из них.
Если всё же нужно одновременно визуализировать несколько графиков так, чтобы они не мешали друг другу, то это можно сделать двумя способами. Во-первых, можно построить их в разных графических окнах. Например, построив графики функций sin и cos в пределах одного графического окна (показано выше), вычисляем значения для функции exp:
w = exp( x );
После этого выполняем команды
которые построят график функции exp в новом графическом окне, так как команда figure создаёт новое (добавочное) графическое окно, и все последующие за ней команды построения графиков выводят их в новое окно:
Вторым решением рассматриваемой задачи показа сразу нескольких графиков без конфликта диапазонов осей координат является использование функции subplot. Эта функция позволяет разбить область вывода графической информации на несколько подобластей, в каждую из которых можно вывести графики различных функций.
subplot(1,2,1); plot(x,y,x,z)
subplot(1,2,2); plot(x,w)
в результате чего получаем графическое окно следующего вида:
Диапазоны изменения переменных на осях координат этих подобластей независимы друг от друга.
Если для одиночного графика диапазоны изменения переменных вдоль одной или обоих осей координат слишком велики, то можно воспользоваться функциями построения графиков в логарифмических масштабах. Для этого предназначены функции semilogx, semilogy и loglog. Подробную информацию по использованию этих функций всегда можно получитьпри помощи команды
help имя_функции
набираемой с клавиатуры и выполняемой в командном окне системы MATLAB.
Итак, уже рассмотренные примеры показывают, как подсистема высокоуровневой графики MATLABа легко справляется с различными случаями построения графиков, не требуя слишком большой работы от пользователя. Ещё одним таким примером является построение графиков в полярных координатах. Например, если нужно построить график функции r = sin( 3 f ) в полярных координатах, то следующие несколько команд
phi = 0 : 0.01 : 2*pi; r = sin( 3* phi );
subplot
Create axes in tiled positions
Syntax
Description
ax = subplot( ___ ) creates an Axes object, PolarAxes object, or GeographicAxes object. Use ax to make future modifications to the axes.
subplot( ax ) makes the axes specified by ax the current axes for the parent figure. This option does not make the parent figure the current figure if it is not already the current figure.
Examples
Upper and Lower Subplots
Create a figure with two stacked subplots. Plot a sine wave in each one.
Quadrant of Subplots
Create a figure divided into four subplots. Plot a sine wave in each one and title each subplot.
Subplots with Different Sizes
Create a figure containing with three subplots. Create two subplots across the upper half of the figure and a third subplot that spans the lower half of the figure. Add titles to each subplot.
Replace Subplot with Empty Axes
Create a figure with four stem plots of random data. Then replace the second subplot with empty axes.
Subplots at Custom Positions
Create a figure with two subplots that are not aligned with grid positions. Specify a custom position for each subplot.
Create Subplots with Polar Axes
Create a figure with two polar axes. Create a polar line chart in the upper subplot and a polar scatter chart in the lower subplot.
Modify Axes Properties After Creation
Modify the axes by setting properties of the Axes objects. Change the font size for the upper subplot and the line width for the lower subplot. Some plotting functions set axes properties. Execute plotting functions before specifying axes properties to avoid overriding existing axes property settings. Use dot notation to set properties.
Make Subplot the Current Axes
Convert Existing Axes to Subplot
Create a line chart. Then convert the axes so that it is the lower subplot of the figure. The subplot function uses the figure in which the original axes existed.
Convert Axes in Separate Figures to Subplots
Combine axes that exist in separate figures in a single figure with subplots.
Input Arguments
m — Number of grid rows
1 (default) | positive integer
Number of grid rows, specified as a positive integer.
Data Types: single | double
n — Number of grid columns
1 (default) | positive integer
Number of grid columns, specified as a positive integer.
Data Types: single | double
p — Grid position for new axes
scalar | vector
Grid position for the new axes, specified as a scalar or vector of positive integers.
Example: subplot(2,3,1) creates a subplot in position 1.
Example: subplot(2,3,[2,5]) creates a subplot spanning positions 2 and 5.
Example: subplot(2,3,[2,6]) creates a subplot spanning positions 2, 3, 5, and 6.
Data Types: single | double
pos — Custom position for new axes
four-element vector
The left and bottom elements specify the position of the bottom-left corner of the subplot in relation to the bottom-left corner of the figure.
The width and height elements specify the subplot dimensions.
Specify values between 0 and 1 that are normalized with respect to the interior of the figure.
Note
When using a script to create subplots, MATLAB does not finalize the Position property value until either a drawnow command is issued or MATLAB returns to await a user command. The Position property value for a subplot is subject to change until the script either refreshes the plot or exits.
Example: subplot(‘Position’,[0.1 0.1 0.45 0.45])
Data Types: single | double
ax — Existing axes to make current or convert to subplot
Axes object | PolarAxes object | GeographicAxes object | graphics object
Existing axes to make current or convert to a subplot, specified as an Axes object, a PolarAxes object, a GeographicAxes object, or a graphics object with an PositionConstraint property, such as a HeatmapChart object.
Name-Value Arguments
Example: subplot(m,n,p,’XGrid’,’on’)
Some plotting functions override property settings. Consider setting axes properties after plotting. The properties you can set depend on the type of axes:
Alternative Functionality
Use the tiledlayout and nexttile functions to create a configurable tiling of plots. The configuration options include:
Control over the spacing between the plots and around the edges of the layout
An option for a shared title at the top of the layout
Options for shared x— and y-axis labels
An option to control whether the tiling has a fixed size or variable size that can reflow
subplot
Create axes in tiled positions
Syntax
Description
ax = subplot( ___ ) creates an Axes object, PolarAxes object, or GeographicAxes object. Use ax to make future modifications to the axes.
subplot( ax ) makes the axes specified by ax the current axes for the parent figure. This option does not make the parent figure the current figure if it is not already the current figure.
Examples
Upper and Lower Subplots
Create a figure with two stacked subplots. Plot a sine wave in each one.
Quadrant of Subplots
Create a figure divided into four subplots. Plot a sine wave in each one and title each subplot.
Subplots with Different Sizes
Create a figure containing with three subplots. Create two subplots across the upper half of the figure and a third subplot that spans the lower half of the figure. Add titles to each subplot.
Replace Subplot with Empty Axes
Create a figure with four stem plots of random data. Then replace the second subplot with empty axes.
Subplots at Custom Positions
Create a figure with two subplots that are not aligned with grid positions. Specify a custom position for each subplot.
Create Subplots with Polar Axes
Create a figure with two polar axes. Create a polar line chart in the upper subplot and a polar scatter chart in the lower subplot.
Modify Axes Properties After Creation
Modify the axes by setting properties of the Axes objects. Change the font size for the upper subplot and the line width for the lower subplot. Some plotting functions set axes properties. Execute plotting functions before specifying axes properties to avoid overriding existing axes property settings. Use dot notation to set properties.
Make Subplot the Current Axes
Convert Existing Axes to Subplot
Create a line chart. Then convert the axes so that it is the lower subplot of the figure. The subplot function uses the figure in which the original axes existed.
Convert Axes in Separate Figures to Subplots
Combine axes that exist in separate figures in a single figure with subplots.
Input Arguments
m — Number of grid rows
1 (default) | positive integer
Number of grid rows, specified as a positive integer.
Data Types: single | double
n — Number of grid columns
1 (default) | positive integer
Number of grid columns, specified as a positive integer.
Data Types: single | double
p — Grid position for new axes
scalar | vector
Grid position for the new axes, specified as a scalar or vector of positive integers.
Example: subplot(2,3,1) creates a subplot in position 1.
Example: subplot(2,3,[2,5]) creates a subplot spanning positions 2 and 5.
Example: subplot(2,3,[2,6]) creates a subplot spanning positions 2, 3, 5, and 6.
Data Types: single | double
pos — Custom position for new axes
four-element vector
The left and bottom elements specify the position of the bottom-left corner of the subplot in relation to the bottom-left corner of the figure.
The width and height elements specify the subplot dimensions.
Specify values between 0 and 1 that are normalized with respect to the interior of the figure.
Note
When using a script to create subplots, MATLAB does not finalize the Position property value until either a drawnow command is issued or MATLAB returns to await a user command. The Position property value for a subplot is subject to change until the script either refreshes the plot or exits.
Example: subplot(‘Position’,[0.1 0.1 0.45 0.45])
Data Types: single | double
ax — Existing axes to make current or convert to subplot
Axes object | PolarAxes object | GeographicAxes object | graphics object
Existing axes to make current or convert to a subplot, specified as an Axes object, a PolarAxes object, a GeographicAxes object, or a graphics object with an PositionConstraint property, such as a HeatmapChart object.
Name-Value Arguments
Example: subplot(m,n,p,’XGrid’,’on’)
Some plotting functions override property settings. Consider setting axes properties after plotting. The properties you can set depend on the type of axes:
Alternative Functionality
Use the tiledlayout and nexttile functions to create a configurable tiling of plots. The configuration options include:
Control over the spacing between the plots and around the edges of the layout
An option for a shared title at the top of the layout
Options for shared x— and y-axis labels
An option to control whether the tiling has a fixed size or variable size that can reflow
subplot
Create axes in tiled positions
Syntax
Description
ax = subplot( ___ ) creates an Axes object, PolarAxes object, or GeographicAxes object. Use ax to make future modifications to the axes.
subplot( ax ) makes the axes specified by ax the current axes for the parent figure. This option does not make the parent figure the current figure if it is not already the current figure.
Examples
Upper and Lower Subplots
Create a figure with two stacked subplots. Plot a sine wave in each one.
Quadrant of Subplots
Create a figure divided into four subplots. Plot a sine wave in each one and title each subplot.
Subplots with Different Sizes
Create a figure containing with three subplots. Create two subplots across the upper half of the figure and a third subplot that spans the lower half of the figure. Add titles to each subplot.
Replace Subplot with Empty Axes
Create a figure with four stem plots of random data. Then replace the second subplot with empty axes.
Subplots at Custom Positions
Create a figure with two subplots that are not aligned with grid positions. Specify a custom position for each subplot.
Create Subplots with Polar Axes
Create a figure with two polar axes. Create a polar line chart in the upper subplot and a polar scatter chart in the lower subplot.
Modify Axes Properties After Creation
Modify the axes by setting properties of the Axes objects. Change the font size for the upper subplot and the line width for the lower subplot. Some plotting functions set axes properties. Execute plotting functions before specifying axes properties to avoid overriding existing axes property settings. Use dot notation to set properties.
Make Subplot the Current Axes
Convert Existing Axes to Subplot
Create a line chart. Then convert the axes so that it is the lower subplot of the figure. The subplot function uses the figure in which the original axes existed.
Convert Axes in Separate Figures to Subplots
Combine axes that exist in separate figures in a single figure with subplots.
Input Arguments
m — Number of grid rows
1 (default) | positive integer
Number of grid rows, specified as a positive integer.
Data Types: single | double
n — Number of grid columns
1 (default) | positive integer
Number of grid columns, specified as a positive integer.
Data Types: single | double
p — Grid position for new axes
scalar | vector
Grid position for the new axes, specified as a scalar or vector of positive integers.
Example: subplot(2,3,1) creates a subplot in position 1.
Example: subplot(2,3,[2,5]) creates a subplot spanning positions 2 and 5.
Example: subplot(2,3,[2,6]) creates a subplot spanning positions 2, 3, 5, and 6.
Data Types: single | double
pos — Custom position for new axes
four-element vector
The left and bottom elements specify the position of the bottom-left corner of the subplot in relation to the bottom-left corner of the figure.
The width and height elements specify the subplot dimensions.
Specify values between 0 and 1 that are normalized with respect to the interior of the figure.
Note
When using a script to create subplots, MATLAB does not finalize the Position property value until either a drawnow command is issued or MATLAB returns to await a user command. The Position property value for a subplot is subject to change until the script either refreshes the plot or exits.
Example: subplot(‘Position’,[0.1 0.1 0.45 0.45])
Data Types: single | double
ax — Existing axes to make current or convert to subplot
Axes object | PolarAxes object | GeographicAxes object | graphics object
Existing axes to make current or convert to a subplot, specified as an Axes object, a PolarAxes object, a GeographicAxes object, or a graphics object with an PositionConstraint property, such as a HeatmapChart object.
Name-Value Arguments
Example: subplot(m,n,p,’XGrid’,’on’)
Some plotting functions override property settings. Consider setting axes properties after plotting. The properties you can set depend on the type of axes:
Alternative Functionality
Use the tiledlayout and nexttile functions to create a configurable tiling of plots. The configuration options include:
Control over the spacing between the plots and around the edges of the layout
An option for a shared title at the top of the layout
Options for shared x— and y-axis labels
An option to control whether the tiling has a fixed size or variable size that can reflow