Comment ajouter du texte sur une figure avec matplotlib ?

Active 17 juin 2014    /    Viewed 16242    /    Comments 0    /    Edit


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

Liens Site
Putting text in top left corner of matplotlib plot stackoverflow
matplotlib write text in the margin stack overflow
matplotlib.pyplot.figtext matplotlib doc
matplotlib.pyplot.text matplotlib doc


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!