HOWTO · Matplotlib
Barra de error de Python
Uno puede trazar datos con barras de error usando la función errorbar() de Matplotlib en Python.
En esta página
Usa la función errorbar() de Matplotlib para representar medidas con incertidumbre vertical mediante yerr, incertidumbre horizontal mediante xerr o ambas. Los ejemplos siguientes usan valores fijos para que puedas ver cómo cambia el gráfico con cada argumento.
Barras de error en Python
Una barra de error muestra el tamaño de la incertidumbre asociada a una medida representada en un gráfico. Por ejemplo, una resistencia con un valor de tolerancia tiene un rango de valores posibles, en lugar de un único valor exacto garantizado. En un gráfico, la barra comunica ese rango alrededor de un punto de datos; no modifica el valor medido.
Ejecuta este ejemplo:
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()
Esto representa cuatro puntos con barras de error verticales. yerr proporciona la extensión del error vertical correspondiente a cada valor de y. La lista y_error contiene un valor por punto, por lo que sus longitudes se corresponden con los datos representados. Matplotlib también acepta una extensión escalar compartida o una matriz de dos filas con las extensiones inferior y superior; cada formato debe cumplir los requisitos de forma de los datos. Usa un escalar cuando todos los puntos tengan la misma incertidumbre simétrica, una secuencia cuando cada punto tenga su propia incertidumbre simétrica o extensiones inferiores y superiores distintas cuando la incertidumbre sea asimétrica. El gráfico contiene listas de valores fijos, no medidas generadas aleatoriamente.
Para mostrar también la incertidumbre horizontal, pasa un valor a xerr. El siguiente ejemplo usa los mismos cuatro puntos fijos y asigna a cada uno una extensión horizontal de 0.5. Las barras resultantes en el eje x son horizontales, mientras que yerr sigue dibujando barras 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 cadena de formato compacta de fmt="--ro" combina una línea discontinua (--), el color rojo (r) y marcadores circulares (o). Puedes usar fmt para elegir el estilo y el color de la línea de datos, así como el marcador, o usar opciones de trazado por separado si necesitas más control. La opción ms establece el tamaño del marcador. Para cambiar su apariencia, mec (también markeredgecolor) modifica el color del contorno, mfc (también markerfacecolor) modifica el color de relleno y mew (también markeredgewidth) modifica el grosor del contorno. Estas opciones afectan a los marcadores de datos, no a las barras de error.
El estilo de las barras de error tiene sus propios argumentos. ecolor establece su color; por ejemplo, ecolor="g" las hace verdes. elinewidth controla el grosor de las líneas de las barras. capsize establece la longitud de los pequeños remates de los extremos, y capthick controla su grosor. Estos remates señalan los extremos de una barra de error; no son los marcadores de datos. Ajusta estos valores a la escala y al peso visual de tu gráfico, en lugar de dar por sentada una apariencia predeterminada.
Este ejemplo combina esos ajustes con los mismos datos y el mismo estilo de línea y marcadores:
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()
Cuando un gráfico tiene muchos puntos, mostrar una barra de error en cada uno puede dificultar la lectura. Usa errorevery para elegir qué puntos de datos reciben barras de error y mantener la línea y los marcadores del conjunto de datos. Por ejemplo, errorevery=2 muestra barras en puntos alternos, empezando por el primero de la serie. Cambia la ubicación de las barras de error, no los datos subyacentes ni la línea. El argumento puede ser un paso entero o un par de posición inicial y paso si quieres desplazar la selección.
Ejecuta este ejemplo para mostrar barras en puntos alternos y conservar la línea de datos y los marcadores circulares:
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()
Elige las opciones según la información de tus datos: usa yerr para la incertidumbre de la medida vertical, xerr para la incertidumbre de la medida horizontal y ambos cuando haya incertidumbre en las dos magnitudes. Haz corresponder cada valor de error con el punto que describe; para una incertidumbre asimétrica, usa extensiones inferiores y superiores distintas. Después, ajusta fmt, las opciones de los marcadores y el estilo de las barras de error para que el gráfico sea legible. Si se ve demasiado recargado, errorevery puede reducir el número de barras mostradas sin descartar los puntos representados.