Как Сильвадо упоминает в своем комментарии, вы можете использовать рендеринг LaTeX для более гибкого управления рендерингом текста. Смотрите здесь для получения дополнительной информации: http://matplotlib.org/users/usetex.html
Пример:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
# activate latex text rendering
rc('text', usetex=True)
x = np.arange(10)
y = np.random.random(10)
z = np.random.random(10)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y, label = r"This is \textbf{line 1}")
ax.plot(x, z, label = r"This is \textit{line 2}")
ax.legend()
plt.show()
Обратите внимание на 'r' перед строками меток. Из-за этого \ будет рассматриваться как латексная команда и не будет интерпретироваться как Python (поэтому вы можете набрать \textbf
вместо \\textbf
).