Criando caixas a partir de barras de erro usando PatchCollection #

Neste exemplo, capturamos um gráfico de barra de erro bastante padrão adicionando um trecho de retângulo definido pelos limites das barras nas direções x e y. Para fazer isso, temos que escrever nossa própria função personalizada chamada make_error_boxes. Uma inspeção minuciosa desta função revelará o padrão preferido na escrita de funções para matplotlib:

  1. um Axesobjeto é passado diretamente para a função

  2. a função opera nos Axesmétodos diretamente, não através da pyplotinterface

  3. argumentos de palavras-chave de plotagem que podem ser abreviados são explicados para melhor legibilidade do código no futuro (por exemplo, usamos facecolor em vez de fc )

  4. os artistas retornados pelos Axesmétodos de plotagem são retornados pela função para que, se desejado, seus estilos possam ser modificados posteriormente fora da função (eles não são modificados neste exemplo).

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 erro e caixas

Referências

O uso das seguintes funções, métodos, classes e módulos é mostrado neste exemplo:

Galeria gerada por Sphinx-Gallery