У меня есть простой график в matplotlib, и я хотел бы увеличить расстояние между заголовком и графиком (без использования suptitle, потому что он не работает на версии, которую я использую на сервере). Как это сделать?
Увеличить расстояние между заголовком и графиком в matplolib?
Ответ 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 - отступы между графиком и заголовком.
Ответ 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 может переместить заголовок за пределы рисунка. (как это случилось со мной;))