6.1. Заголовки графиков

Добавить заголовок к области Axes можно с помощью метода set_title(label, fontdict=None, loc='center', pad=None, **kwargs), который принимает четыре позиционных аргумента и целую кучу аргументов по ключу. В простейшем случае, мы просто указываем заголовок в виде строки:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.normal(0, 1, 10000)

fig, ax = plt.subplots()

ax.hist(data, bins = 50, rwidth = 0.4)

ax.set_title('Нормальное распределение')

plt.show()

Matplotlib title

Параметр fontdict не очень удобен и редко используется, в тоже время параметры loc и pad позволяют ,быстро задать горизонтальное и вертикальное выравнивание:

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 3)

for ax in axes:
    mu = 10*np.random.random()
    kappa = 10*np.random.random()
    data = np.random.vonmises(mu, kappa, size=1000)
    ax.hist(data, bins = 50, rwidth = 0.4)

#  Вертикальное и горизонтальное выравнивание заголовков:
axes[0].set_title('loc = "left", pad = 0',
                loc = 'left',
                pad = 0)    #  задает расстояние в точках

axes[1].set_title('loc = "center", pad = 10',
                loc = 'center',     #  значение по умолчанию
                pad = 10)

axes[2].set_title('loc = "right", pad = 20',
                loc = 'right',
                pad = 20)

fig.set_figheight(2)
fig.set_figwidth(14)

plt.show()

Matplotlib title горизонтальное и вертикальное выравнивание

Параметр fontsize устанавливает размер шрифта, а параметры color и backgroundcolor его цвет и цвет области фона заголовка:

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 2)

for ax in axes:
    mu = 10*np.random.random()
    kappa = 10*np.random.random()
    data = np.random.vonmises(mu, kappa, size=1000)
    ax.hist(data, bins = 50, rwidth = 0.4)

#  Размер шрифта его цвет и цвет фона:
axes[0].set_title('fontsize = 20',
                  fontsize = 20,
                  color = 'red',
                  backgroundcolor = 'black')

axes[1].set_facecolor('black')
axes[1].set_title('fontsize = 15',
                  fontsize = 15,
                  color = 'white',
                  backgroundcolor = 'black')


fig.set_figheight(2)
fig.set_figwidth(14)

plt.show()

Matplotlib title: размер и цвет шрифта, цвет фона заголовка

Установить вид шрифта и его начертание можно с помощью параметров fontfamily и fontstyle:

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 3)

for ax in axes:
    mu = 10*np.random.random()
    kappa = 10*np.random.random()
    data = np.random.vonmises(mu, kappa, size=1000)
    ax.hist(data, bins = 50, rwidth = 0.4)

#  Вид и начертание шрифта заголовка:
axes[0].set_title('Заголовок',
                fontfamily = 'serif',
                fontstyle = 'italic',
                fontsize = 30)

axes[1].set_title('Заголовок',
                fontfamily = 'fantasy',
                fontstyle = 'oblique',
                fontsize = 30)

axes[2].set_title('Заголовок',
                fontfamily = 'monospace',
                fontstyle = 'normal',
                fontsize = 30)

fig.set_figheight(2)
fig.set_figwidth(14)

plt.show()

Matplotlib title: вид шрифта

В случаях нескольких областей Axes может понадобиться добавления общего заголовка для всей области Figure, это можно сделать с помощью метода suptitle():

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 3)

for ax in axes:
    mu = 10*np.random.random()
    kappa = 10*np.random.random()
    data = np.random.vonmises(mu, kappa, size=1000)
    ax.hist(data, bins = 50, rwidth = 0.4)

#  Заголовок области Figure:
fig.suptitle('Заголовок области Figure',
             y = 1.2,
             fontsize = 30)
    
#  Заголовки областей Axes:
axes[0].set_title('Заголовок Axes_1')
axes[1].set_title('Заголовок Axes_2')
axes[2].set_title('Заголовок Axes_3')

fig.set_figheight(2)
fig.set_figwidth(14)

plt.show()

Matplotlib title: заголовок области Figure

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