exponenta event banner

побочная сюжетная линия

Создание осей в мозаичных позициях

Описание

пример

subplot(m,n,p) делит текущую цифру на mоколо-n и создает оси в положении, указанном p. MATLAB ® нумерует позиции вложенного графика по строкам. Первый вложенный график является первым столбцом первой строки, второй вложенный график является вторым столбцом первой строки и т.д. Если оси находятся в указанном положении, то эта команда делает оси текущими осями.

пример

subplot(m,n,p,'replace') удаление существующих осей на месте p и создает новые оси.

subplot(m,n,p,'align') создает новые оси для выравнивания полей печати. Этот параметр используется по умолчанию.

пример

subplot(m,n,p,ax) преобразует существующие оси, ax, в вложенный график на том же рисунке.

пример

subplot('Position',pos) создает оси в пользовательской позиции, указанной pos. Эта опция используется для размещения вложенного графика, который не выравнивается по позициям сетки. Определить pos как четырехэлементный вектор вида [left bottom width height]. Если новые оси перекрывают существующие оси, то новые оси заменяют существующие.

subplot(___,Name,Value) изменяет свойства осей, используя один или несколько аргументов пары имя-значение. Задайте свойства осей после всех других входных аргументов.

пример

ax = subplot(___) создает Axes объект, PolarAxes объект, или GeographicAxes объект. Использовать ax для внесения будущих изменений в оси.

пример

subplot(ax) делает оси заданными ax текущие оси для родительского рисунка. Этот параметр не делает родительскую фигуру текущей фигурой, если она еще не является текущей фигурой.

Примеры

свернуть все

Создайте фигуру с двумя вложенными разделителями. Постройте график синусоидальной волны в каждом.

subplot(2,1,1);
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)

subplot(2,1,2); 
y2 = sin(5*x);
plot(x,y2)

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

Создайте фигуру, разделенную на четыре вложенных графика. Постройте график синусоидальной волны в каждом из них и назовите каждый вложенный график.

subplot(2,2,1)
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Subplot 1: sin(x)')

subplot(2,2,2)
y2 = sin(2*x);
plot(x,y2)
title('Subplot 2: sin(2x)')

subplot(2,2,3)
y3 = sin(4*x);
plot(x,y3)
title('Subplot 3: sin(4x)')

subplot(2,2,4)
y4 = sin(8*x);
plot(x,y4)
title('Subplot 4: sin(8x)')

Figure contains 4 axes. Axes 1 with title Subplot 1: sin(x) contains an object of type line. Axes 2 with title Subplot 2: sin(2x) contains an object of type line. Axes 3 with title Subplot 3: sin(4x) contains an object of type line. Axes 4 with title Subplot 4: sin(8x) contains an object of type line.

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

subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')

subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')

subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')

Figure contains 3 axes. Axes 1 with title Subplot 1: Cosine contains an object of type line. Axes 2 with title Subplot 2: Polynomial contains an object of type line. Axes 3 with title Subplot 3 and 4: Both contains 2 objects of type line.

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

for k = 1:4
    data = rand(1,10);
    subplot(2,2,k)
    stem(data)
end

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

subplot(2,2,2,'replace')

Figure contains 4 axes. Axes 1 contains an object of type stem. Axes 2 contains an object of type stem. Axes 3 contains an object of type stem. Axes 4 is empty.

Создайте фигуру с двумя вложенными чертежами, которые не выровнены по позициям сетки. Укажите пользовательскую позицию для каждого вложенного графика.

pos1 = [0.1 0.3 0.3 0.3];
subplot('Position',pos1)
y = magic(4);
plot(y)
title('First Subplot')

pos2 = [0.5 0.15 0.4 0.7];
subplot('Position',pos2)
bar(y)
title('Second Subplot')

Figure contains 2 axes. Axes 1 with title First Subplot contains 4 objects of type line. Axes 2 with title Second Subplot contains 4 objects of type bar.

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

figure
ax1 = subplot(2,1,1,polaraxes);
theta = linspace(0,2*pi,50);
rho = sin(theta).*cos(theta);
polarplot(ax1,theta,rho)

ax2 = subplot(2,1,2,polaraxes);
polarscatter(ax2,theta,rho)

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

Создайте фигуру с двумя вложенными чертежами. Назначить Axes объекты к переменным ax1 и ax2. Укажите Axes объекты в качестве входных данных для функций печати, чтобы обеспечить вывод функций на печать в определенном вложенном графике.

ax1 = subplot(2,1,1);
Z = peaks;
plot(ax1,Z(1:20,:))

ax2 = subplot(2,1,2);  
plot(ax2,Z)

Figure contains 2 axes. Axes 1 contains 49 objects of type line. Axes 2 contains 49 objects of type line.

Изменение осей путем установки свойств Axes объекты. Измените размер шрифта для верхней части печати и ширину линии для нижней части печати. Некоторые функции печати задают свойства осей. Прежде чем задавать свойства осей, выполните функции печати, чтобы избежать переопределения существующих параметров свойств осей. Для задания свойств используйте точечную нотацию.

ax1.FontSize = 15;
ax2.LineWidth = 2;

Figure contains 2 axes. Axes 1 contains 49 objects of type line. Axes 2 contains 49 objects of type line.

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

for k = 1:4
    ax(k) = subplot(2,2,k);
end

subplot(ax(2))
x = linspace(1,50);
y = sin(x);
plot(x,y,'Color',[0.1, 0.5, 0.1])
title('Second Subplot')
axis([0 50 -1 1])

Figure contains 4 axes. Axes 1 is empty. Axes 2 with title Second Subplot contains an object of type line. Axes 3 is empty. Axes 4 is empty.

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

x = linspace(1,10);
y = sin(x);
plot(x,y)
title('Sine Plot')

Figure contains an axes. The axes with title Sine Plot contains an object of type line.

ax = gca;
subplot(2,1,2,ax)

Figure contains an axes. The axes with title Sine Plot contains an object of type line.

Объединение осей, существующих на отдельных фигурах, в одной фигуре с вложенными чертежами.

Создайте два графика на двух разных фигурах. Назначить Axes объекты к переменным ax1 и ax2. Назначить Legend объект к переменной lgd.

figure
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Line Plot 1')

Figure contains an axes. The axes with title Line Plot 1 contains an object of type line.

ax1 = gca;

figure
y2 = 2*sin(x);
plot(x,y2)
title('Line Plot 2')
lgd = legend('2*Sin(x)');

Figure contains an axes. The axes with title Line Plot 2 contains an object of type line. This object represents 2*Sin(x).

ax2 = gca;

Создание копий двух Axes объекты с использованием copyobj. Укажите родители скопированных осей в качестве новой фигуры. Поскольку легенды и колорбары не копируются с соответствующими осями, скопируйте легенду с осями.

fnew = figure;
ax1_copy = copyobj(ax1,fnew);
subplot(2,1,1,ax1_copy)

copies = copyobj([ax2,lgd],fnew);
ax2_copy = copies(1);
subplot(2,1,2,ax2_copy)

Входные аргументы

свернуть все

Число строк сетки, указанное как положительное целое число.

Типы данных: single | double

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

Типы данных: single | double

Положение сетки для новых осей, указанное как скаляр или вектор положительных целых чисел.

  • Если p является скалярным положительным целым числом, то subplot создание вложенной печати в положении сетки p.

  • Если p является вектором положительных целых чисел, то subplot создает вложенный график, охватывающий позиции сетки, перечисленные в p.

Пример: subplot(2,3,1) создает вложенный график в позиции 1.

Пример: subplot(2,3,[2,5]) создает вложенный график, охватывающий позиции 2 и 5.

Пример: subplot(2,3,[2,6]) создает вложенный график, охватывающий позиции 2, 3, 5 и 6.

Типы данных: single | double

Пользовательская позиция для новых осей, заданная как четырехэлементный вектор формы [left bottom width height].

  • left и bottom элементы определяют положение левого нижнего угла вложенного графика относительно левого нижнего угла фигуры.

  • width и height элементы задают размеры вложенной печати.

Укажите значения между 0 и 1 нормализованные относительно внутренней части фигуры.

Примечание

При использовании сценария для создания вложенных диаграмм MATLAB не завершает Position значение свойства до drawnow выдается команда или MATLAB возвращается для ожидания команды пользователя. Position значение свойства для вложенного графика может быть изменено до тех пор, пока сценарий не обновит график или не завершит работу.

Пример: subplot('Position',[0.1 0.1 0.45 0.45])

Типы данных: single | double

Существующие оси для создания текущей или преобразования в вложенную печать, заданную как Axes объект, a PolarAxes объект, a GeographicAxes объект или графический объект с PositionConstraint свойство, такое как HeatmapChart объект.

Чтобы создать пустые полярные или географические оси в позиции вложенного графика, укажите ax в качестве polaraxes или geoaxes функция. Например, subplot(2,1,2,polaraxes).

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

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

Пример: subplot(m,n,p,'XGrid','on')

Некоторые функции печати переопределяют параметры свойств. Рассмотрите возможность установки свойств осей после печати. Свойства, которые можно задать, зависят от типа осей:

.

Совет

  • Чтобы очистить содержимое рисунка, используйте clf. Например, можно удалить существующую компоновку вложенной печати из рисунка, прежде чем создавать новую компоновку вложенной печати.

  • Чтобы наложить оси, используйте axes вместо этого команда. subplot удаляет существующие оси, перекрывающие новые оси. Например, subplot('Position',[.35 .35 .3 .3]) удаляет все нижележащие оси, но axes('Position',[.35 .35 .3 .3]) размещение новых осей в середине фигуры без удаления нижележащих осей.

  • subplot(111) является исключением и не идентичен по поведению subplot(1,1,1). По причинам обратной совместимости, subplot(111) является частным случаем субплота, который не создает сразу оси, но настраивает рисунок так, чтобы следующая графическая команда выполнялась clf reset. Следующая графическая команда удаляет все нижестоящие элементы фигуры и создает новые оси в положении по умолчанию. subplot(111) не возвращает Axes и возникает ошибка, если код указывает возвращаемый аргумент.

Альтернативная функциональность

Используйте tiledlayout и nexttile для создания конфигурируемой мозаики графиков. Опции конфигурации включают в себя:

  • Управление интервалом между графиками и по краям компоновки

  • Параметр для общего заголовка в верхней части макета

  • Параметры для общих меток осей X и Y

  • Параметр, определяющий, имеет ли мозаика фиксированный размер или переменный размер, который может быть переформатирован

Дополнительные сведения см. в разделе Объединение нескольких графиков.

Представлен до R2006a