HOWTO · Matplotlib
Barre d'erreur Python
On peut tracer des données avec des barres d'erreur en utilisant la fonction errorbar() de Matplotlib en Python.
Sur cette page
Utilisez la fonction errorbar() de Matplotlib pour représenter des mesures avec une incertitude verticale au moyen de yerr, une incertitude horizontale au moyen de xerr, ou les deux. Les exemples ci-dessous utilisent des valeurs fixes afin de montrer l’effet de chaque argument sur le graphique.
Barres d’erreur en Python
Une barre d’erreur indique l’étendue de l’incertitude associée à une mesure représentée sur un graphique. Par exemple, une résistance assortie d’une tolérance peut avoir plusieurs valeurs possibles plutôt qu’une valeur exacte garantie. Sur un graphique, la barre représente cette plage autour d’un point de données ; elle ne modifie pas la valeur mesurée.
Exécutez cet exemple :
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4]
y_values = [1, 2, 3, 4]
y_error = [0.9, 0.5, 0.75, 0.25]
plt.errorbar(x_values, y_values, yerr=y_error)
plt.show()
Cela représente quatre points avec des barres d’erreur verticales. yerr fournit l’étendue de l’erreur verticale correspondant à chaque valeur de y. La liste y_error contient une valeur par point : ses longueurs correspondent donc aux données représentées. Matplotlib accepte également une étendue scalaire commune ou un tableau à deux lignes indiquant les étendues inférieure et supérieure ; dans chaque cas, la forme doit respecter les dimensions attendues pour les données. Utilisez un scalaire si tous les points ont la même incertitude symétrique, une séquence si chaque point a sa propre incertitude symétrique, ou des étendues inférieure et supérieure distinctes pour une incertitude asymétrique. Le graphique utilise des listes de valeurs fixes, et non des mesures générées aléatoirement.
Pour représenter aussi l’incertitude horizontale, transmettez une valeur à xerr. L’exemple suivant reprend les mêmes quatre points fixes et attribue à chacun une étendue horizontale de 0.5. Les barres sur l’axe des x sont horizontales, tandis que yerr continue de tracer les barres verticales.
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4]
y_values = [1, 2, 3, 4]
y_error = [0.9, 0.5, 0.75, 0.25]
x_error = [0.5, 0.5, 0.5, 0.5]
plt.errorbar(x_values, y_values, yerr=y_error, xerr=x_error, fmt="--ro", ms=10)
plt.show()
La chaîne de format compacte fmt="--ro" combine une ligne en tirets (--), la couleur rouge (r) et des marqueurs circulaires (o). Utilisez fmt pour choisir le style de ligne, la couleur et le marqueur, ou définissez des options de tracé distinctes pour un réglage plus précis. L’option ms définit la taille des marqueurs. Pour en régler l’apparence, mec (également appelé markeredgecolor) modifie la couleur du contour, mfc (également appelé markerfacecolor) modifie la couleur de remplissage et mew (également appelé markeredgewidth) modifie l’épaisseur du contour. Ces options concernent les marqueurs des données, pas les barres d’erreur.
Les barres d’erreur possèdent leurs propres arguments de style. ecolor définit leur couleur ; par exemple, ecolor="g" les rend vertes. elinewidth règle l’épaisseur de leurs lignes. capsize définit la longueur des petits traits aux extrémités, et capthick en règle l’épaisseur. Ces traits terminaux marquent les extrémités d’une barre d’erreur : ce ne sont pas les marqueurs des données. Choisissez ces valeurs en fonction de l’échelle et de l’importance visuelle souhaitée pour votre graphique, sans supposer une apparence par défaut particulière.
Cet exemple combine ces réglages avec les mêmes données, le même style de ligne et les mêmes marqueurs :
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4]
y_values = [1, 2, 3, 4]
y_error = [0.9, 0.5, 0.75, 0.25]
x_error = [0.5, 0.5, 0.5, 0.5]
plt.errorbar(
x_values,
y_values,
yerr=y_error,
xerr=x_error,
fmt="--ro",
ms=10,
ecolor="g",
elinewidth=3,
capsize=10,
capthick=3,
)
plt.show()
Quand un graphique contient beaucoup de points, afficher une barre d’erreur pour chacun peut nuire à sa lisibilité. Utilisez errorevery pour choisir les points auxquels ajouter des barres d’erreur, tout en conservant la ligne et les marqueurs des données. Par exemple, errorevery=2 affiche des barres un point sur deux, en commençant par le premier point de la série. Cet argument modifie l’emplacement des barres d’erreur, pas les données sous-jacentes ni la ligne. Il accepte un pas entier ou une paire indiquant le point de départ et le pas, pour décaler la sélection.
Exécutez cet exemple pour afficher des barres un point sur deux tout en conservant la ligne des données et les marqueurs circulaires :
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4]
y_values = [1, 2, 3, 4]
y_error = [0.9, 0.5, 0.75, 0.25]
plt.errorbar(x_values, y_values, yerr=y_error, fmt="-o", errorevery=2)
plt.show()
Choisissez les options en fonction des informations contenues dans vos données : utilisez yerr pour l’incertitude sur la mesure verticale, xerr pour celle sur la mesure horizontale, et les deux lorsque les deux grandeurs sont incertaines. Faites correspondre chaque valeur d’erreur au point qu’elle décrit ; utilisez des étendues inférieure et supérieure distinctes en cas d’incertitude asymétrique, puis réglez fmt, les options des marqueurs et le style des barres d’erreur pour améliorer la lisibilité. Si le graphique est chargé, errorevery peut réduire le nombre de barres affichées sans supprimer les observations représentées.