5 методов добавления заголовка внутри графика Matplotlib

Метод 1: использование функции text
Функция textв Matplotlib позволяет добавлять текст в любую позицию графика. Указав координаты заголовка, вы можете расположить его внутри графика.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
plt.text(2, 2.5, "Title inside plot", ha='center', va='center', fontsize=12, fontweight='bold')
plt.show()

Метод 2: использование функции annotate
Функция annotateв Matplotlib — это еще один способ добавить текст или метки в определенные позиции на графике. Мы можем использовать эту функцию для создания текстового поля с нужным заголовком внутри графика.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
ax.annotate("Title inside plot", xy=(2, 2.5), xytext=(2.5, 3),
             arrowprops=dict(facecolor='black', arrowstyle='->'),
             fontsize=12, fontweight='bold')
plt.show()

Метод 3: размещение заголовка с использованием set_titleи set_position
Функция set_titleMatplotlib позволяет нам установить заголовок графика, и set_positionпозволяют нам регулировать положение заголовка. Указав положение относительно осей, мы можем разместить заголовок внутри графика.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
ax.set_title("Title inside plot", fontsize=12, fontweight='bold', pad=20)
ax.title.set_position([0.5, 0.9])
plt.show()

Метод 4: использование комбинации textи transAxes
Преобразование transAxes— это мощный инструмент в Matplotlib, который позволяет нам позиционируйте элементы на основе размеров осей. Объединив функцию textс transAxes, мы можем разместить заголовок внутри графика относительно осей.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
ax.text(0.5, 0.5, "Title inside plot", ha='center', va='center',
        fontsize=12, fontweight='bold', transform=ax.transAxes)
plt.show()
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])
inset_ax = inset_axes(ax, width="40%", height="30%", loc='upper right')
inset_ax.set_title("Title inside plot", fontsize=12, fontweight='bold')
inset_ax.axis('off')
plt.show()