Einbeziehung von oberen und unteren Grenzen in Fehlerbalken#

In Matplotlib können Fehlerbalken "Grenzen" haben. Das Anwenden von Grenzen auf die Fehlerbalken macht den Fehler im Wesentlichen unidirektional. Daher können obere und untere Grenzen sowohl in y- als auch in x-Richtung über die Parameter uplims, lolims, xuplims bzw. xlolims angewendet werden. Diese Parameter können Skalar- oder boolesche Arrays sein.

Wenn zum Beispiel xlolims True ist, erstrecken sich die x-Fehlerbalken nur vom Datenpunkt weg zu höheren Werten. Wenn uplims ein Array ist, das mit False gefüllt ist, außer an der 4. und 7. Stelle, sind alle y-Fehlerbalken bidirektional, außer dem 4. und 7. Balken, die sich vom Datenpunkt weg zu kleineren y-Werten erstrecken werden.

import matplotlib.pyplot as plt
import numpy as np

# example data
x = np.array([0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0])
y = np.exp(-x)
xerr = 0.1
yerr = 0.2

# lower & upper limits of the error
lolims = np.array([0, 0, 1, 0, 1, 0, 0, 0, 1, 0], dtype=bool)
uplims = np.array([0, 1, 0, 0, 0, 1, 0, 0, 0, 1], dtype=bool)
ls = 'dotted'

fig, ax = plt.subplots(figsize=(7, 4))

# standard error bars
ax.errorbar(x, y, xerr=xerr, yerr=yerr, linestyle=ls)

# including upper limits
ax.errorbar(x, y + 0.5, xerr=xerr, yerr=yerr, uplims=uplims,
            linestyle=ls)

# including lower limits
ax.errorbar(x, y + 1.0, xerr=xerr, yerr=yerr, lolims=lolims,
            linestyle=ls)

# including upper and lower limits
ax.errorbar(x, y + 1.5, xerr=xerr, yerr=yerr,
            lolims=lolims, uplims=uplims,
            marker='o', markersize=8,
            linestyle=ls)

# Plot a series with lower and upper limits in both x & y
# constant x-error with varying y-error
xerr = 0.2
yerr = np.full_like(x, 0.2)
yerr[[3, 6]] = 0.3

# mock up some limits by modifying previous data
xlolims = lolims
xuplims = uplims
lolims = np.zeros_like(x)
uplims = np.zeros_like(x)
lolims[[6]] = True  # only limited at this index
uplims[[3]] = True  # only limited at this index

# do the plotting
ax.errorbar(x, y + 2.1, xerr=xerr, yerr=yerr,
            xlolims=xlolims, xuplims=xuplims,
            uplims=uplims, lolims=lolims,
            marker='o', markersize=8,
            linestyle='none')

# tidy up the figure
ax.set_xlim((0, 5.5))
ax.set_title('Errorbar upper and lower limits')
plt.show()
Errorbar upper and lower limits

Tags: plot-type: errorbar domain: statistics

Referenzen

Die Verwendung der folgenden Funktionen, Methoden, Klassen und Module wird in diesem Beispiel gezeigt

Galerie generiert von Sphinx-Gallery