tiledlayout

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

Описание

пример

tiledlayout(m,n) создает размещение мозаики для отображения нескольких графиков на текущей фигуре. Размещение имеет фиксированное m-by- n плитка, которая может отображать до m*n графики. Если рисунка нет, MATLAB® создает рисунок и помещает размещение в нее. Если текущая фигура содержит существующие оси или размещение, MATLAB заменяет его новым размещением.

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

пример

tiledlayout('flow') задает 'flow' расположение плитки для размещения. Первоначально существует только одна пустая плитка, которая заполняет всёся размещение. Как вы звоните nexttileКомпоновка переплетается по мере необходимости для размещения новых осей с сохранением соотношения сторон приблизительно 4:3 для всех плиток.

пример

tiledlayout(___,Name,Value) задает дополнительные опции для размещения, используя один или несколько аргументы пары "имя-значение". Задайте опции после всех других входных параметров. Для примера, tiledlayout(2,2,'TileSpacing','compact') создает размещение 2 на 2 с минимальным интервалом между плитками. Список свойств см. в разделе Свойства TiledChartLayout.

пример

tiledlayout(parent,___) создает размещение в указанном родительском контейнере, а не в текущей фигуре. Задайте родительский контейнер перед всеми другими входными параметрами.

пример

t = tiledlayout(___) возвращает TiledChartLayout объект. Использование t конфигурирование свойств размещения после его создания.

Примеры

свернуть все

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

tiledlayout(2,2);
[X,Y,Z] = peaks(20);

% Tile 1
nexttile
surf(X,Y,Z)

% Tile 2
nexttile
contour(X,Y,Z)

% Tile 3
nexttile
imagesc(Z)

% Tile 4
nexttile
plot3(X,Y,Z)

Figure contains 4 axes. Axes 1 contains an object of type surface. Axes 2 contains an object of type contour. Axes 3 contains an object of type image. Axes 4 contains 20 objects of type line.

Создайте четыре вектора координат: x, y1, y2, и y3. Вызовите tiledlayout функция со 'flow' аргумент для создания размещения мозаичного графика, который может включать любое количество осей. Вызовите nexttile функция для создания первых осей. Затем постройте график y1 в первой плитке. Этот первый график заполняет всёся размещение.

x = linspace(0,30);
y1 = sin(x/2);
y2 = sin(x/3);
y3 = sin(x/4);

% Plot into first tile three times
tiledlayout('flow')
nexttile
plot(x,y1)

Figure contains an axes. The axes contains an object of type line.

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

nexttile
plot(x,y2)

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

Повторите процесс, чтобы создать третий график.

nexttile
plot(x,y3)

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

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

nexttile
plot(x,y1)
hold on
plot(x,y2)
plot(x,y3)
hold off

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

Создайте пять векторов координат: x, y1, y2, y3, и y4. Затем вызовите tiledlayout функция для создания 2-by- 2 размещение и укажите возвращаемый аргумент для хранения TileChartLayout объект. Вызовите nexttile функция для создания объекта осей в следующей пустой плитке перед вызовом plot функция.

x = linspace(0,30);
y1 = sin(x);
y2 = sin(x/2);
y3 = sin(x/3);
y4 = sin(x/4);
t = tiledlayout(2,2);

% Tile 1
nexttile
plot(x,y1)

% Tile 2
nexttile
plot(x,y2)

% Tile 3
nexttile
plot(x,y3)

% Tile 4
nexttile
plot(x,y4)

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

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

t.TileSpacing = 'compact';
t.Padding = 'compact';

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

Создайте 2-by- 2 размещение графика t. Задайте TileSpacing аргумент пары "имя-значение" для минимизации пространства между плитками. Затем создайте заголовок графика в каждой плитке.

t = tiledlayout(2,2,'TileSpacing','Compact');

% Tile 1
nexttile
plot(rand(1,20))
title('Sample 1')

% Tile 2
nexttile
plot(rand(1,20))
title('Sample 2')

% Tile 3
nexttile
plot(rand(1,20))
title('Sample 3')

% Tile 4
nexttile
plot(rand(1,20))
title('Sample 4')

Figure contains 4 axes. Axes 1 with title Sample 1 contains an object of type line. Axes 2 with title Sample 2 contains an object of type line. Axes 3 with title Sample 3 contains an object of type line. Axes 4 with title Sample 4 contains an object of type line.

Отображение общего заголовка и подписей по осям путем передачи t на title, xlabel, и ylabel функций.

title(t,'Size vs. Distance')
xlabel(t,'Distance (mm)')
ylabel(t,'Size (mm)')

Figure contains 4 axes. Axes 1 with title Sample 1 contains an object of type line. Axes 2 with title Sample 2 contains an object of type line. Axes 3 with title Sample 3 contains an object of type line. Axes 4 with title Sample 4 contains an object of type line.

Создайте панель на рисунке. Затем создайте график размещения с мозаикой на панели путем определения объекта панели в качестве первого аргумента к tiledlayout функция. Отображение графика на каждой плитке.

p = uipanel('Position',[.1 .2 .8 .6]);
t = tiledlayout(p,2,1);

% Tile 1
nexttile(t)
stem(1:13)

% Tile 2
nexttile(t)
bar([10 22 31 43 52])

Figure contains 2 axes and another object of type uipanel. Axes 1 contains an object of type stem. Axes 2 contains an object of type bar.

Вызовите tiledlayout функция для создания 2-by- 1 размещение графика. Вызовите nexttile функция с выходным аргументом для хранения осей. Затем постройте график в осях и установите красный цвет осей X и ось Y Повторите процесс во второй плитке.

t = tiledlayout(2,1);

% First tile
ax1 = nexttile;
plot([1 2 3 4 5],[11 6 10 4 18]);
ax1.XColor = [1 0 0];
ax1.YColor = [1 0 0];

% Second tile
ax2 = nexttile;
plot([1 2 3 4 5],[5 1 12 9 2],'o');
ax2.XColor = [1 0 0];
ax2.YColor = [1 0 0];

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

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

Определите scores и strikes как векторы, содержащие данные лиги боулинга по четырем играм. Затем создайте 3-by- 3 размещение мозаики и отображение пяти гистограмм, показывающих количество ударов для каждой команды.

scores = [444 460 380 388 389
          387 366 500 467 460
          365 451 611 426 495
          548 412 452 471 402];

strikes = [9  6  5  7  5
           6  4  8 10  7
           4  7 16  9  9
           10  9  8  8  9];
       
t = tiledlayout(3,3);

% Team 1
nexttile
bar([1 2 3 4],strikes(:,1))
title('Team 1 Strikes')

% Team 2
nexttile
bar([1 2 3 4],strikes(:,2))
title('Team 2 Strikes')

% Team 3
nexttile
bar([1 2 3 4],strikes(:,3))
title('Team 3 Strikes')

% Team 4
nexttile
bar([1 2 3 4],strikes(:,4))
title('Team 4 Strikes')

% Team 5
nexttile(7)
bar([1 2 3 4],strikes(:,5))
title('Team 5 Strikes')

Figure contains 5 axes. Axes 1 with title Team 1 Strikes contains an object of type bar. Axes 2 with title Team 2 Strikes contains an object of type bar. Axes 3 with title Team 3 Strikes contains an object of type bar. Axes 4 with title Team 4 Strikes contains an object of type bar. Axes 5 with title Team 5 Strikes contains an object of type bar.

Отобразите больший график с легендой. Вызовите nexttile функция, чтобы разместить верхний левый угол осей в пятой плитке и охватить оси двумя строками двумя столбцами плитки. Постройте счета для всех команд. Сконфигурируйте ось X, чтобы отобразить четыре тактов и добавить метки к каждой оси. Затем добавьте общий заголовок в верхней части размещения.

nexttile(5,[2 2]);
plot([1 2 3 4],scores,'-.')
labels = {'Team 1','Team 2','Team 3','Team 4','Team 5'};
legend(labels,'Location','northwest')

% Configure ticks and axis labels
xticks([1 2 3 4])
xlabel('Game')
ylabel('Score')

% Add layout title
title(t,'April Bowling League Data')

Figure contains 6 axes. Axes 1 with title Team 1 Strikes contains an object of type bar. Axes 2 with title Team 2 Strikes contains an object of type bar. Axes 3 with title Team 3 Strikes contains an object of type bar. Axes 4 with title Team 4 Strikes contains an object of type bar. Axes 5 with title Team 5 Strikes contains an object of type bar. Axes 6 contains 5 objects of type line. These objects represent Team 1, Team 2, Team 3, Team 4, Team 5.

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

tiledlayout(1,2)

% Display geographic plot
nexttile
geoplot([47.62 61.20],[-122.33 -149.90],'g-*')

% Display polar plot
nexttile
theta = pi/4:pi/4:2*pi;
rho = [19 6 12 18 16 11 15 15];
polarscatter(theta,rho)

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

Создайте мозаику 2 на 2 графики размещения. Вызовите peaks функция для получения координат для предопределенной поверхности. Затем создайте другой график поверхности в каждой плитке.

tiledlayout(2,2);
[X,Y,Z] = peaks(20);

% Tile 1
nexttile
surf(X,Y,Z)

% Tile 2
nexttile
contour(X,Y,Z)

% Tile 3
nexttile
imagesc(Z)

% Tile 4
nexttile
plot3(X,Y,Z)

Figure contains 4 axes. Axes 1 contains an object of type surface. Axes 2 contains an object of type contour. Axes 3 contains an object of type image. Axes 4 contains 20 objects of type line.

Чтобы изменить палитру в третьей плитке, получите оси в этой плитке. Вызовите nexttile функция путем определения номера плитки и возврата выходного аргумента осей. Затем передайте оси в colormap функция.

ax = nexttile(3);
colormap(ax,cool)

Figure contains 4 axes. Axes 1 contains an object of type surface. Axes 2 contains an object of type contour. Axes 3 contains an object of type image. Axes 4 contains 20 objects of type line.

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

t = tiledlayout(2,3);
[X,Y,Z] = peaks;

% Tile 1
nexttile
contour(X,Y,Z)

% Span across two rows and columns
nexttile([2 2])
contourf(X,Y,Z)

% Last tile
nexttile
imagesc(Z)

Figure contains 3 axes. Axes 1 contains an object of type contour. Axes 2 contains an object of type contour. Axes 3 contains an object of type image.

Чтобы изменить палитру для покрываемых осей, определите расположение плитки как местоположение, содержащее верхний левый угол осей. В этом случае верхний левый угол находится во второй плитке. Вызовите nexttile функция со 2 в качестве местоположения плитки и укажите выходной аргумент, чтобы вернуть объект осей в это местоположение. Затем передайте оси в colormap функция.

ax = nexttile(2);
colormap(ax,hot)

Figure contains 3 axes. Axes 1 contains an object of type contour. Axes 2 contains an object of type contour. Axes 3 contains an object of type image.

Загрузите patients Данные установите и создайте таблицу из подмножества переменных. Затем создайте 2-by- 2 размещение графика. Отображение графика поля точек в первой плитке, тепловой карты во второй плитке и совмещенном графике на двух нижних плитках.

load patients
tbl = table(Diastolic,Smoker,Systolic,Height,Weight,SelfAssessedHealthStatus);
tiledlayout(2,2)

% Scatter plot
nexttile
scatter(tbl.Height,tbl.Weight)

% Heatmap
nexttile
heatmap(tbl,'Smoker','SelfAssessedHealthStatus','Title','Smoker''s Health');

% Stacked plot
nexttile([1 2])
stackedplot(tbl,{'Systolic','Diastolic'});

Figure contains an axes and other objects of type . The axes contains an object of type scatter. The chart of type heatmap has title Smoker's Health.

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

nexttile(1)
scatterhistogram(tbl,'Height','Weight');

Figure contains objects of type . The chart of type heatmap has title Smoker's Health.

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

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

Z1 = peaks;
Z2 = membrane;
tiledlayout(2,1);
nexttile
contourf(Z1)
nexttile
contourf(Z2)

Figure contains 2 axes. Axes 1 contains an object of type contour. Axes 2 contains an object of type contour.

Добавьте шкалу палитры цветов и переместите ее на восточную плитку.

cb = colorbar;
cb.Layout.Tile = 'east';

Figure contains 2 axes. Axes 1 contains an object of type contour. Axes 2 contains an object of type contour.

Иногда перед вызовом функции построения графика может потребоваться создать оси вручную. Когда вы создаете оси, задайте parent аргумент в качестве размещения мозаичного графика. Затем расположите оси путем установки Layout свойство на осях.

Создайте плитку графика размещения t и задайте 'flow' устройство плитки. Отображение графика в каждой из первых трех плиток.

t = tiledlayout('flow');
nexttile
plot(rand(1,10));
nexttile
plot(rand(1,10));
nexttile
plot(rand(1,10));

Создайте географический объект осей gax вызовом geoaxes и задайте t как родительский аргумент. По умолчанию оси переходят в первую плитку, поэтому переместите ее в четвертую плитку путем установки gax.Layout.Tile на 4. Пролет осей по 2-by- 3 область плиток путем установки gax.Layout.TileSpan на [2 3].

gax = geoaxes(t);
gax.Layout.Tile = 4;
gax.Layout.TileSpan = [2 3];

Вызовите geoplot функция. Затем сконфигурируйте центр карты и уровень масштаба для осей.

geoplot(gax,[47.62 61.20],[-122.33 -149.90],'g-*')
gax.MapCenter = [47.62 -122.33];
gax.ZoomLevel = 2;

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

свернуть все

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

Пример: tiledlayout(2,3) создает мозаичный график размещения, которая имеет две строки и три столбца мозаик.

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

Пример: tiledlayout(2,3) создает мозаичный график размещения, которая имеет две строки и три столбца мозаик.

Родительский контейнер, заданный как Figure, Panel, Tab, TiledChartLayout, или GridLayout объект.

Аргументы в виде пар имя-значение

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

Пример: tiledlayout(2,2,'TileSpacing','compact') создает размещение 2 на 2, который имеет минимальные интервалы между плитками.

Примечание

Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойства TiledChartLayout.

Интервал между плитками, заданный как 'loose', 'compact', 'tight' или 'none'. Используйте это свойство для управления интервалом между плитками.

В этой таблице показано, как каждое значение влияет на внешний вид 2-by- 2 размещение.

ЗначениеВнешность

'loose'

Tiled chart layout with 'loose' tile spacing.

'compact'

Tiled chart layout with 'compact' tile spacing.

'tight'

Tiled chart layout with 'tight' tile spacing.

'none'

Tiled chart layout with 'none' tile spacing.

Заполнение по периметру размещения, заданное как 'loose', 'compact', или 'tight'. Размещение предоставляет пространство для всех украшений, таких как подписи по осям, независимо от значения этого свойства.

В этой таблице показано, как каждое значение влияет на внешний вид 2-by- 2 размещение.

ЗначениеВнешность

'loose'

Tiled chart layout with 'loose' padding.

'compact'

Tiled chart layout with 'compact' padding.

'tight'

Tiled chart layout with 'tight' padding.

Вопросы совместимости

расширить все

Поведение изменено в R2021a

См. также

Функции

Свойства

Введенный в R2019b