exponenta event banner

Настраиваемые презентации и специальные эффекты с мозаичными схемами

Компоновка мозаичной диаграммы позволяет управлять размещением элементов в визуализации и создавать специальные эффекты. Эта тема охватывает четыре примера:

Дробная колонка и печать с общим заголовком

Макеты мозаичных диаграмм имеют несколько функций для представления нескольких элементов вместе под общим заголовком. В этом случае под общим заголовком поместите цветовую линейку поверх графика.

Создать 1около-1 макет мозаичной диаграммы. Затем отобразите контурный график peaks набор данных.

figure
t = tiledlayout(1,1);
nexttile
contourf(peaks)

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

Создайте панель цветов и укажите 'northoutside' местоположение. Затем добавьте общий заголовок, передав объект макета, t, в title функция.

cb = colorbar('Location','northoutside');
title(t,'Contours of Peaks')

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

Нерегулярная сетка графиков

Макеты мозаичных диаграмм могут быть вложенными. Это полезно для изменения расположения плиток в компоновке. В этом случае создайте два столбца, каждый из которых имеет различное количество плиток.

Создание мозаичной компоновки «1 на 2» с именем t1. Затем создайте две вложенные компоновки, t2 и t3, где t2 находится в первой плитке t1, и t3 находится во второй плитке. Затем отобразите два графика контуров в t2и добавьте заголовок над графиками.

figure
t1 = tiledlayout(1,2,'TileSpacing','Compact');
t2 = tiledlayout(t1,'flow','TileSpacing','Compact');
t3 = tiledlayout(t1,'flow','TileSpacing','Compact');
t3.Layout.Tile = 2;

% Add two contour plots to left side
[X,Y,Z] = peaks;
nexttile(t2);
contourf(X,Y,Z)
nexttile(t2)
contourf(X,Y,Z,10)
title(t2,"Contours of Peaks")

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

Отображение трех линейных графиков в пределах t3и добавьте заголовок.

nexttile(t3)
plot(Z(15,:))
nexttile(t3)
plot(Z(25,:))
nexttile(t3)
plot(Z(35,:))
title(t3,"Y = -1.25, 0, and 1.25")

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

Основной график с соседними меньшими графиками

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

Сначала создайте матрицу синусоидальных волн и постройте их график в 1около-1 макет мозаичной диаграммы.

x = (0:0.1:10)';
y = sin([x x+1 x+2 x+3 x+4 x+5]);
figure
t = tiledlayout(1,1);
nexttile
plot(x,y)

Figure contains an axes. The axes contains 6 objects of type line.

Постройте график отдельных синусоидальных волн ниже основного графика. Для этого создайте новый макет с именем ts в южной плитке макета t. При создании ts, укажите 'flow' расположение плиток таким образом, чтобы графики заполняли всю южную плитку в каждой итерации for цикл.

ts = tiledlayout(t,'flow');
ts.Layout.Tile = 'south';
for i=1:5
    nexttile(ts);
    plot(x,y(:,i))
end

Figure contains 6 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. Axes 5 contains an object of type line. Axes 6 contains 6 objects of type line.

Участок области интересов

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

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

figure
t = tiledlayout(3,3,'Padding','compact');
ax1 = nexttile(1,[3 3]); 
x = randn(2000,1);
y = randn(2000,1);
scatter(ax1,x,y,1,'filled');

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

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

  • Определите границы прямоугольника. Определить left и bottom как левый и нижний края прямоугольника. Определить left в единицах по оси X и укажите bottom в единицах оси Y. Аналогично, определить width и height как ширина и высота прямоугольника, также в единицах оси.

  • Отображение прямоугольника. Позвоните в hold чтобы сохранить содержимое осей, а затем вызвать rectangle функция.

  • Задайте свойства осей. Задайте размер шрифта как 10 точки, задайте пределы осей X и Y и включите сетку.

% Define bounds of the rectangle
left = -0.5;
bottom = -0.7;
width = 0.4;
height = 0.4;

% Display the rectangle
hold(ax1,'on');
r = rectangle('Position',[left bottom width height], ...
    'EdgeColor','red','LineWidth',1.5);

% Set properties on the axes
ax1.FontSize = 10;
ax1.XLim = [-4.5 4.5];
ax1.YLim = [-4.5 4.5];
grid(ax1,'on')

Figure contains an axes. The axes contains 2 objects of type scatter, rectangle.

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

  • Создайте оси для увеличенного вида. Позвоните в axes для создания осей. Переместите оси в третью плитку, установив Layout.Tile собственность. Затем постройте график всего набора данных x и y.

  • Скорректируйте пределы оси в соответствии с интересующей областью. Установите XLim и YLim свойства ax2 для соответствия интересующему региону. Затем удалите засечки из поля печати.

  • Задайте другие свойства осей. Включите поле осей, установите красные цвета осей X и Y и отобразите заголовок.

% Create axes for zoomed-in view
ax2 = axes(t);
ax2.Layout.Tile = 3;
scatter(ax2,x,y,10,'filled');

% Adjust axis limits and remove ticks
ax2.XLim = [left left+width];
ax2.YLim = [bottom bottom+height];
ax2.XTick = [];
ax2.YTick = [];

% Set other properties on the axes
ax2.Box = 'on';
ax2.XAxis.Color = 'red';
ax2.YAxis.Color = 'red';
title(ax2,'100x Magnification','Color','red');

Figure contains 2 axes. Axes 1 contains 2 objects of type scatter, rectangle. Axes 2 with title 100x Magnification contains an object of type scatter.

См. также

Функции

Свойства

Связанные темы