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

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

Сложенный Шкала палитры и график с общим заголовком

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

Создайте 1-by- 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-by- 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.

Необходимая область

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

Создайте график размещения с мозаикой 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.

См. также

Функции

Свойства

Похожие темы