У меня есть простой график в 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
может переместить заголовок за пределы рисунка. (как это случилось со мной;))