подграфик

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

Синтаксис

subplot(m,n,p)
subplot(m,n,p,'replace')
subplot(m,n,p,'align')
subplot(m,n,p,ax)
subplot('Position',pos)
subplot(___,Name,Value)
ax = subplot(___)
subplot(ax)

Описание

пример

subplot(m,n,p) делит текущую фигуру на m-by-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. Используйте 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)

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

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)')

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

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')

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

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

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

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

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
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)

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

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

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

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

Примечание: Начиная с R2014b, вы можете использовать запись через точку для того, чтобы задать свойства. Если вы используете более раннюю версию, используйте вместо этого функцию set.

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

Создайте фигуру с несколькими подграфиками. Храните объекты 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])

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

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

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

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

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

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

ax1 = gca;

figure
y2 = 2*sin(x);
plot(x,y2)
title('Line Plot 2')
lgd = legend('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.

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

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

Пример: подграфик (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 для подграфика подвержено изменениям до скрипта или обновляет график или выходы.

Пример: подграфик ('Положение', [0.1 0.1 0.45 0.45])

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

Существующие оси, чтобы сделать текущим или преобразовать в подграфик, заданный как объект Axes, объект PolarAxes или графический объект со свойством ActivePositionProperty, таким как объект HeatmapChart.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: подграфик (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, и ошибка происходит, если код задает возвращаемый аргумент.

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

Была ли эта тема полезной?