ti-enxame.com

Estilo da parte do rótulo na legenda no matplotlib

É possível ter parte do texto de uma legenda em um estilo específico, digamos, negrito ou itálico ?

38
englebip

Como o silvado menciona em seu comentário, você pode usar a renderização do LaTeX para um controle mais flexível da renderização do texto. Veja aqui para mais informações: http://matplotlib.org/users/usetex.html

Um exemplo:

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()

enter image description here

Observe o 'r' antes das strings dos rótulos. Por isso, o\será tratado como um comando de látex e não será interpretado como python faria (para que você possa digitar \textbf ao invés de \\textbf).

31
joris

Escreva entre '$$' para forçar o matplotlib a interpretá-lo.

import matplotlib.pyplot as plt

plt.plot(range(10), range(10), label = "Normal text $\it{Italics}$")
plt.legend()
plt.show()
22