Индивидуально настраиваемые представления и специальные эффекты с мозаичными размещениями графика

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

Сложенная шкала палитры и график с разделяемым заголовком

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

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

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

Функции

Свойства

Похожие темы