Построение нескольких графиков

В этом примере показано, как построить графики в тех же осях с помощью hold функция, и как создать несколько осей на рисунке, использующем tiledlayout функция. tiledlayout функция является доступным запуском в R2019b. Если вы используете более ранний релиз, используйте subplot функцию вместо этого.

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

По умолчанию новые графики очищают существующие графики и сбрасывают свойства осей, такие как заголовок. Однако можно использовать hold on команда, чтобы построить несколько графиков в тех же осях. Например, постройте два графика и график рассеивания. После отключите удержание командой hold off.

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 свойства к 'none'.

t.Padding = 'none';
t.TileSpacing = 'none';

Отобразите разделяемый заголовок и подписи по осям

Можно отобразить разделяемый заголовок и совместно использованные подписи по осям в размещении. Создайте 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 к titlexlabel, и 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';

Смотрите также

Функции

Похожие темы