В этом примере показано, как объединить графики в тех же осях с помощью hold function, и как создать несколько осей на рисунке с помощью tiledlayout функция. The tiledlayout функция доступна, начиная с R2019b. Если вы используете более ранний релиз, используйте subplot вместо этого функция.
По умолчанию новые графики очищают существующие графики и сбрасывают свойства осей, такие как заголовок. Однако можно использовать hold on команда для объединения нескольких графиков в одной оси. Например, постройте график двух линий и график поля точек. После отключите состояние удержания.
x = linspace(0,10,50); y1 = sin(x); plot(x,y1) title('Combine Plots') hold on y2 = sin(x/2); plot(x,y2) y3 = 2*sin(x); scatter(x,y3) hold off

Когда состояние удержания включено, новые графики не очищают существующие графики или сбрасывают свойства осей, такие как заголовок или подписи по осям. Графики проходят циклически через цвета и стили линии на основе ColorOrder и LineStyleOrder свойства осей. Пределы осей и значений деления могут корректироваться с учетом новых данных.
Можно отобразить несколько осей на одной фигуре при помощи tiledlayout функция. Эта функция создает мозаичный график размещения, содержащее невидимую сетку плиток по всему рисунку. Каждая плитка может содержать оси для отображения графика. После создания размещения вызовите nexttile функция для размещения объекта осей в компоновке. Затем вызовите функцию построения графика, чтобы построить график в осях. Например, создайте два графика в размещении 2 на 1. Добавить заголовок к каждому графику.
Примечание: Этот код использует tiledlayout функция, которая доступна начиная с R2019b. Если вы используете более ранний релиз, используйте subplot вместо этого функция.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); tiledlayout(2,1) % Requires R2019b or later % Top plot nexttile plot(x,y1) title('Plot 1') % Bottom plot nexttile scatter(x,y2) title('Plot 2')

Чтобы создать график, охватывающий несколько строк или столбцов, задайте span аргумент при вызове nexttile. Например, создайте размещение 2 на 2. Постройте график в первых двух плитках. Затем создайте график, который охватывает одну строку и два столбца.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); % Top two plots tiledlayout(2,2) % Requires R2019b or later nexttile plot(x,y1) nexttile scatter(x,y2) % Plot that spans nexttile([1 2]) y2 = rand(50,1); plot(x,y2)

Измените внешний вид осей путем установки свойств для каждого из объектов осей. Получить объект осей можно по вызову nexttile функция с выходным аргументом. Можно также задать объект осей как первый входной параметр в графическую функцию, чтобы убедиться, что функция нацелена на правильные оси.
Например, создайте два графика и присвойте объекты осей переменным ax1 и ax2. Измените размер шрифта осей и цвет оси X для первого графика. Добавить линии сетки ко второму графику.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); tiledlayout(2,1) % Requires R2019b or later % Top plot ax1 = nexttile; plot(ax1,x,y1) title(ax1,'Plot 1') ax1.FontSize = 14; ax1.XColor = 'red'; % Bottom plot ax2 = nexttile; scatter(ax2,x,y2) title(ax2,'Plot 2') grid(ax2,'on')

Можно управлять интервалами между плитками в размещение, задавая Padding и TileSpacing свойства. Для примера отобразите четыре графика в размещение 2 на 2.
x = linspace(0,30); y1 = sin(x); y2 = sin(x/2); y3 = sin(x/3); y4 = sin(x/4); % Create plots t = tiledlayout(2,2); % Requires R2019b or later nexttile plot(x,y1) nexttile plot(x,y2) nexttile plot(x,y3) nexttile plot(x,y4)

Уменьшите интервалы по периметру размещения и вокруг каждой плитки путем установки Padding и TileSpacing свойства для 'compact'.
t.Padding = 'compact'; t.TileSpacing = 'compact';

Общий заголовок и общие подписи по осям можно отобразить в размещение. Создайте размещение 2 на 1 t. Затем отобразите линейный график и диаграмму лист-ствол. Синхронизируйте пределы оси X путем вызова linkaxes функция.
x1 = linspace(0,20,100); y1 = sin(x1); x2 = 3:17; y2 = rand(1,15); % Create plots. t = tiledlayout(2,1); % Requires R2019b or later ax1 = nexttile; plot(ax1,x1,y1) ax2 = nexttile; stem(ax2,x2,y2) % Link the axes linkaxes([ax1,ax2],'x');

Добавить общий заголовок и общие подписи по осям путем передачи t на title, xlabel, и ylabel функций. Переместите графики ближе друг к другу, удалив метки такта оси X из верхнего графика и задав TileSpacing свойство t на 'compact'.
% Add shared title and axis labels title(t,'My Title') xlabel(t,'x-values') ylabel(t,'y-values') % Move plots closer together xticklabels(ax1,{}) t.TileSpacing = 'compact';

hold | nexttile | tiledlayout | title