У меня есть одна фигура, которая содержит много подсюжетов.
fig = plt.figure(num=None, figsize=(26, 12), dpi=80, facecolor='w', edgecolor='k')
fig.canvas.set_window_title('Window Title')
# Returns the Axes instance
ax = fig.add_subplot(311)
ax2 = fig.add_subplot(312)
ax3 = fig.add_subplot(313)
Как добавить заголовки к подплощадкам?
fig.suptitle
добавляет заголовок ко всем графикам, и хотя существует ax.set_title()
, последний не добавляет никакого заголовка к моим субплотам.
Спасибо за помощь.
Редактировать:
Исправлена опечатка в set_title()
. Спасибо Рутгер Кассис
ax.set_title()
должен установить заголовки для отдельных субплощадок:
import matplotlib.pyplot as plt
if __name__ == "__main__":
data = [1, 2, 3, 4, 5]
fig = plt.figure()
fig.suptitle("Title for whole figure", fontsize=16)
ax = plt.subplot("211")
ax.set_title("Title for first plot")
ax.plot(data)
ax = plt.subplot("212")
ax.set_title("Title for second plot")
ax.plot(data)
plt.show()
Можете ли вы проверить, работает ли этот код у вас? Может быть, что-то перезаписывает их позже?
ax.title.set_text('My Plot Title')
вроде тоже работает.
fig = plt.figure()
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
ax1.title.set_text('First Plot')
ax2.title.set_text('Second Plot')
ax3.title.set_text('Third Plot')
ax4.title.set_text('Fourth Plot')
plt.show()
Краткий ответ, предполагающий
import matplotlib.pyplot as plt
:
plt.gca().set_title('title')
как в:
plt.subplot(221)
plt.gca().set_title('title')
plt.subplot(222)
etc...
Тогда нет необходимости в лишних переменных.
Если вы хотите сделать его короче, вы могли бы написать :
import matplolib.pyplot as plt
for i in range(4):
plt.subplot(2,2,i+1).set_title('Subplot n°{}' .format(i+1))
plt.show()
Это делает его, возможно, менее ясно, но вы не'т нужно больше строк или переменных
В случае, если у вас есть несколько изображений, и вы хотите, чтобы петли, хотя их и показать им, 1 в 1 вместе с названиями - это то, что вы можете сделать. Не нужно явно определить ax1, ax2 и т. д.
`` импорт библиотек matplotlib.pyplot как plt рис, топор = ПЛТ.сюжетных линий(2, 2, figsize=(6, 8)) Для я в диапазоне(лен(лен)): для J в диапазоне(длина(топор[я])):
топор[я,J].set_title('заголовок-' уЛ(я) + ул. + (к)) ``