Увеличить расстояние между заголовком и графиком в matplolib? - программирование
Подтвердить что ты не робот

Увеличить расстояние между заголовком и графиком в matplolib?

У меня есть простой график в matplotlib, и я хотел бы увеличить расстояние между заголовком и графиком (без использования suptitle, потому что он не работает на версии, которую я использую на сервере). Как это сделать?

4b9b3361

Ответ 1

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

#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()

должен сделать трюк. Настройте 1.05 по своему усмотрению.

Ответ 2

С matplotlib 2.2+ вы можете использовать pad аргументов ключевого слова:

ax.set_title('Title', pad=20)

Регулируйте pad пока вы не будете довольны положением заголовка оси. Преимущество этого метода перед использованием rcParams заключается в том, что он изменяет только этот заголовок с одной осью.

Ответ 3

Использование rcParams:

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20 

где 20 - отступы между графиком и заголовком.

От https://matplotlib.org/users/customizing.html

Ответ 4

Вы можете просто передать параметр y в метод plt.suptitle:

plt.suptitle('Amazing Stats', size=16, y=1.12);      

Ответ 5

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

Перед показом графика, т.е. перед plt.show(), напишите следующую команду:

#The standard value of 'top' is 0.9, tune a lower value, e.g., 0.8
plt.subplots_adjust(top=0.8) 

Этот метод имеет преимущество перед методом @CanCeylan в том, что заголовок никогда не выходит из окна рисунка; потому что если заголовок достаточно велик, то перемещение его вверх через параметр y в suptitle может переместить заголовок за пределы рисунка. (как это случилось со мной;))