subplot

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

Описание

пример

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

пример

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 objects. Axes object 1 contains an object of type line. Axes object 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 objects. Axes object 1 with title Subplot 1: sin(x) contains an object of type line. Axes object 2 with title Subplot 2: sin(2x) contains an object of type line. Axes object 3 with title Subplot 3: sin(4x) contains an object of type line. Axes object 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 objects. Axes object 1 with title Subplot 1: Cosine contains an object of type line. Axes object 2 with title Subplot 2: Polynomial contains an object of type line. Axes object 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 objects. Axes object 1 contains an object of type stem. Axes object 2 contains an object of type stem. Axes object 3 contains an object of type stem. Axes object 4 contains an object of type stem.

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

Figure contains 4 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains an object of type stem. Axes object 3 contains an object of type stem. Axes object 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 objects. Axes object 1 with title First Subplot contains 4 objects of type line. Axes object 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 objects. Axes object 1 contains an object of type line. Axes object 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 objects. Axes object 1 contains 49 objects of type line. Axes object 2 contains 49 objects of type line.

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

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

Figure contains 2 axes objects. Axes object 1 contains 49 objects of type line. Axes object 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 objects. Axes object 1 is empty. Axes object 2 with title Second Subplot contains an object of type line. Axes object 3 is empty. Axes object 4 is empty.

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

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object 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 объект, PolarAxes объект, GeographicAxes объект или графический объект с PositionConstraint свойство, такое как HeatmapChart объект.

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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