Comment ajouter du texte sur une figure avec matplotlib ?


Exemples de comment ajouter du texte sur une figure avec matplotlib de python:

Ajouter de texte avec pyplot.text()

Pour ajouter du texte sur une figure Matplotlib il existe la méthode matplotlib.pyplot.text qui accepte comme arguments de base (x,y,s) avec x l'abscisse, y l'ordonnée et s le texte (de type string). Exemple simple d'application (texte 'Hello World !' aux coordonnées (1,35)):

Ajouter du texte sur une figure Matplotlib (Exemple 01)

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,4,0.2)
y = np.exp(x)

plt.text(1,35,'Hello World !')

plt.grid()
plt.plot(x,y)

plt.show()

Position relative du texte

Si vous ne souhaitez pas placer le texte en fonction des coordonnées (x,y) , car c'est difficile à automatiser, mais en relativement aux axes il est possible d'utiliser l'approche suivante (dans ce cas x et y vont de 0 à 1, dans l'exemple ci dessous x = 0.5 et y = 0.5 c'est à dire au milieu de la figure):

Ajouter du texte sur une figure Matplotlib (Position du texte relativement aux axes)

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)

x = np.arange(0,4,0.2)
y = np.exp(x)

plt.text(0.5,0.5,'Hello World !',horizontalalignment='center',
     verticalalignment='center', transform = ax.transAxes)

plt.grid()
plt.plot(x,y)

plt.savefig('TextTest02.png')
plt.show()

Ajouter du texte avec LaTeX

Vous pouvez aussi mettre du texte formater par LaTeX:

Ajouter du texte sur une figure Matplotlib (Texte avec LaTeX)

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)

x = np.arange(0,4,0.2)
y = np.exp(x)

plt.text(0.5,0.5,r'$y = e^{x}$',horizontalalignment='center',
     verticalalignment='center', transform = ax.transAxes)

plt.grid()
plt.plot(x,y)

plt.savefig('TextTest03.png')
plt.show()

Changer la mise en forme

On peut aussi facilement changer la taille, la couleur, etc

Ajouter du texte sur une figure Matplotlib (Changer la couleur et la taille)

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)

x = np.arange(0,4,0.2)
y = np.exp(x)

plt.text(0.5,0.5,'Hello World !',horizontalalignment='center',
     verticalalignment='center', transform = ax.transAxes, fontsize=14, color='r')

plt.grid()
plt.plot(x,y)

plt.savefig('TextTest04.png')
plt.show()

Références

Image

of