Noter
Cliquez ici pour télécharger l'exemple de code complet
Création de boîtes à partir de barres d'erreur à l'aide de PatchCollection #
Dans cet exemple, nous créons un joli graphique à barres d'erreur standard en ajoutant un rectangle défini par les limites des barres dans les directions x et y. Pour ce faire, nous devons écrire notre propre fonction personnalisée appelée make_error_boxes
. Une inspection minutieuse de cette fonction révélera le modèle préféré dans les fonctions d'écriture pour matplotlib :
un
Axes
objet est passé directement à la fonctionla fonction agit
Axes
directement sur les méthodes, pas via l'pyplot
interfacetracer les arguments de mots-clés qui pourraient être abrégés sont épelés pour une meilleure lisibilité du code à l'avenir (par exemple, nous utilisons facecolor au lieu de fc )
les artistes renvoyés par les
Axes
méthodes de traçage sont ensuite renvoyés par la fonction afin que, si désiré, leurs styles puissent être modifiés ultérieurement en dehors de la fonction (ils ne sont pas modifiés dans cet exemple).
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import PatchCollection
from matplotlib.patches import Rectangle
# Number of data points
n = 5
# Dummy data
np.random.seed(19680801)
x = np.arange(0, n, 1)
y = np.random.rand(n) * 5.
# Dummy errors (above and below)
xerr = np.random.rand(2, n) + 0.1
yerr = np.random.rand(2, n) + 0.2
def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
edgecolor='none', alpha=0.5):
# Loop over data points; create box from errors at each point
errorboxes = [Rectangle((x - xe[0], y - ye[0]), xe.sum(), ye.sum())
for x, y, xe, ye in zip(xdata, ydata, xerror.T, yerror.T)]
# Create patch collection with specified colour/alpha
pc = PatchCollection(errorboxes, facecolor=facecolor, alpha=alpha,
edgecolor=edgecolor)
# Add collection to axes
ax.add_collection(pc)
# Plot errorbars
artists = ax.errorbar(xdata, ydata, xerr=xerror, yerr=yerror,
fmt='none', ecolor='k')
return artists
# Create figure and axes
fig, ax = plt.subplots(1)
# Call function to create error boxes
_ = make_error_boxes(ax, x, y, xerr, yerr)
plt.show()
Références
L'utilisation des fonctions, méthodes, classes et modules suivants est illustrée dans cet exemple :