В этом примере показано, как комбинировать графики в одних осях с помощью hold и как создать несколько осей на рисунке с помощью tiledlayout функция. 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)

Измените внешний вид осей, задав свойства для каждого из объектов осей. Можно получить объект axes, вызвав nexttile с выходным аргументом. Можно также указать объект axes в качестве первого входного аргумента для графической функции, чтобы убедиться, что функция нацелена на правильные оси.
Например, создайте два графика и назначьте переменные объекты-оси 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