Tutoriel Matplotlib - Placer du texte dans le graphe
-
Axes de Matplotlib
Text
-
Matplotlib Axes
Text
Exemple de base -
Rotation des axes de Matplotlib
Text
Rotation -
Axes de Matplotlib
Text
Explication de l’angle de rotation
Nous apprendrons comment placer le texte dans le tracé dans ce tutoriel. Vous pouvez soit ajouter du texte et lui donner un emplacement de coordonnées, soit ajouter du texte à un tracé spécifique et peut-être dessiner une flèche qui pointe directement vers ce tracé.
Axes de Matplotlib Text
matplotlib.axes.Axes.text(x, y, s, fontdict=None, withdash=False, **kwargs)
Ajouter le texte s
aux axes à la position (x, y)
dans les coordonnées des données.
Paramètres
Nom | Type de données | Description |
---|---|---|
x, y |
scalaires |
La position pour placer le texte |
s |
str |
Le texte d’annotation |
fontdict |
dictionary |
Un dictionnaire pour remplacer les propriétés de la police de texte par défaut |
Matplotlib Axes Text
Exemple de base
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 1000)
y = 10 * np.sin(x)
fig, ax = plt.subplots(1, figsize=(6, 4.5))
ax.plot(x, y, "r")
ax.text(2.0, 9.5, "Peak Value", fontsize=14)
ax.grid(True)
plt.show()
Rotation des axes de Matplotlib Text
Rotation
L’axe text
a un mot-clé argument - rotation
qui spécifie l’angle de rotation du texte dans le tracé. L’angle de rotation est compris entre 0 et 360 (degrés).
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 1000)
y = 10 * np.sin(x)
fig, ax = plt.subplots(1, figsize=(6, 4.5))
ax.plot(x, y, "r")
ax.text(1.3, 9.0, "Peak Value", fontsize=16, rotation=270)
ax.grid(True)
plt.show()
Axes de Matplotlib Text
Explication de l’angle de rotation
L’angle de rotation est dans le sens inverse des aiguilles d’une montre. Nous faisons un script de démonstration pour illustrer la définition de l’angle de rotation.
import matplotlib.pyplot as plt
import numpy as np
def addtext(ax, props):
for x in range(8):
angle = 45 * x
ax.text(0.5 + x, 0.5, "{} degree".format(angle), props, rotation=angle)
ax.scatter(x + 0.5, 0.5, color="r")
ax.set_yticks([0, 0.5, 1])
ax.set_xlim(0, 8)
ax.grid(True)
# the text bounding box
bbox = {"fc": "0.8", "pad": 0}
fig, axs = plt.subplots(1, 1, figsize=(8, 3))
addtext(axs, {"ha": "center", "va": "center", "bbox": bbox})
axs.set_xticks(np.arange(0, 8.1, 0.5), [])
axs.set_ylabel("center / center")
plt.show()
Le texte est aligné par sa boîte de délimitation qui est la boîte rectangulaire entourant le rectangle de texte. Le texte sera d’abord pivoté puis aligné. En gros, le texte est centré à l’emplacement (x, y)
, tourné autour de ce point, et ensuite aligné selon la boîte de délimitation du texte tourné.
Ainsi, si vous spécifiez un alignement inférieur gauche, le bas gauche de la boîte englobante du texte pivoté sera à la coordonnée (x, y)
du texte.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook