Название над группой сюжетов

есть много сюжетов, и каждый сюжет имеет свое название. как добавить заголовок ко всей этой группе сюжетов? Я хочу, чтобы этот заголовок отображался вверху по центру.

x = linspace(-5,5);

y1 = sin(x);
subplot(2,5,[1:2])
plot(x,y1)
title('y=sin(x)')

y2 = cos(x);
subplot(2,5,[3:4])
plot(x,y2)
title('y=cos(x)')

y3 = tan(x);
subplot(2,5,[5,10])
plot(x,y3)
title('y=tan(x)')

y4 = sin(2*x);
subplot(2,5,[6:7])
plot(x,y1)
title('y=sin(2x)')

y5 = cos(2*x);
subplot(2,5,[8:9])
plot(x,y2)
title('y=acos(2x)')

person Woeitg    schedule 08.11.2015    source источник
comment
Вам нужна команда suptitle.   -  person Adiel    schedule 08.11.2015
comment
@ Adiel и др.: Обратите внимание, что suptitle находится в наборе инструментов биоинформатики, где он используется для демонстраций. Для тех, у кого нет этого набора инструментов, есть несколько опций на Обмен файлами MathWorks.   -  person horchler    schedule 08.11.2015
comment
Почему Matlab не делает это встроенной функцией? это самая полезная функция для любого пользователя.   -  person Woeitg    schedule 09.11.2015


Ответы (3)


Начиная с Matlab 2018b, новая функция sgtitle добавляет заголовок в группу подграфиков. , просто добавьте sgtitle('Subplot Title');. Ему не нужен ящик для инструментов.

Например:

subplot(1,2,1)
plot(cos(0:40));
title('cos');

subplot(1,2,2)
plot(sin(0:40))
title('sin');

sgtitle('Trigo');

триго

person alpereira7    schedule 28.11.2018

Самый простой способ, который я нашел для людей без набора инструментов биоинформатики, заключается в следующем:

a = axes;
t = title('My title');
a.Visible = 'off';
t.Visible = 'on';

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

Если полученный заголовок сталкивается с вещами, поиграйте с a.Position, чтобы переместить оси.

Да смешно, что это не входит в базовый функционал, но в тулбоксах полно одно-двухстрочных функций, о которых можно так сказать ;-) (глядя на тебя, range.)

person Flyto    schedule 03.05.2018

person    schedule
comment
Что делать, если у вас нет набора инструментов для suptitle()? Любая работа вокруг? - person Austin; 28.01.2017
comment
Я не знаю. Может быть, вы можете задать другой вопрос, чтобы, надеюсь, получить какой-то ответ. - person Woeitg; 28.01.2017
comment
Пожалуйста, воздержитесь от сброса ответов, содержащих только код, в Stack Overflow. Вы пишете ответы не только для того, чтобы ответить на вопрос, но и для того, чтобы быть понятными будущим читателям. Я прочитал это сейчас, спустя 3 года после публикации, и понятия не имею, на что мне следует смотреть. Пожалуйста, объясните свой код, либо в тексте вокруг кода, либо в комментариях внутри кода. - person Adriaan; 28.11.2018