Creando cuadros a partir de barras de error usando PatchCollection #

En este ejemplo, creamos un gráfico de barras de error bastante estándar agregando un parche rectangular definido por los límites de las barras en las direcciones x e y. Para hacer esto, tenemos que escribir nuestra propia función personalizada llamada make_error_boxes. Una inspección minuciosa de esta función revelará el patrón preferido al escribir funciones para matplotlib:

  1. un Axesobjeto se pasa directamente a la función

  2. la función opera en los Axesmétodos directamente, no a través de la pyplotinterfaz

  3. trazar argumentos de palabras clave que podrían abreviarse se explican para una mejor legibilidad del código en el futuro (por ejemplo, usamos facecolor en lugar de fc )

  4. los artistas devueltos por los Axesmétodos de trazado son devueltos por la función para que, si se desea, sus estilos se puedan modificar más adelante fuera de la función (no se modifican en este ejemplo).

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()
barras de error y cajas

Referencias

En este ejemplo se muestra el uso de las siguientes funciones, métodos, clases y módulos:

Galería generada por Sphinx-Gallery