Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Kurve mit Fehlerband #
Dieses Beispiel veranschaulicht, wie ein Fehlerband um eine parametrisierte Kurve gezeichnet wird.
Eine parametrisierte Kurve x(t), y(t) kann direkt mit gezeichnet werden plot.

[None]
Ein Fehlerband kann verwendet werden, um die Unsicherheit der Kurve anzuzeigen. In diesem Beispiel gehen wir davon aus, dass der Fehler als skalarer Fehler angegeben werden kann , der die Unsicherheit senkrecht zur Kurve in jedem Punkt beschreibt.
Wir visualisieren diesen Fehler als farbiges Band um den Pfad mit einem
PathPatch. Der Patch wird aus zwei Pfadsegmenten (xp, yp) und
(xn, yn) erstellt , die um +/- err senkrecht zur Kurve (x, y) verschoben sind .
Hinweis: Diese Methode der Verwendung von a PathPatcheignet sich für beliebige Kurven in 2D. Wenn Sie nur ein normales y-vs-x-Diagramm haben, können Sie die einfachere
fill_betweenMethode verwenden (siehe auch
Fläche zwischen Linien füllen ).
def draw_error_band(ax, x, y, err, **kwargs):
# Calculate normals via centered finite differences (except the first point
# which uses a forward difference and the last point which uses a backward
# difference).
dx = np.concatenate([[x[1] - x[0]], x[2:] - x[:-2], [x[-1] - x[-2]]])
dy = np.concatenate([[y[1] - y[0]], y[2:] - y[:-2], [y[-1] - y[-2]]])
l = np.hypot(dx, dy)
nx = dy / l
ny = -dx / l
# end points of errors
xp = x + nx * err
yp = y + ny * err
xn = x - nx * err
yn = y - ny * err
vertices = np.block([[xp, xn[::-1]],
[yp, yn[::-1]]]).T
codes = np.full(len(vertices), Path.LINETO)
codes[0] = codes[len(xp)] = Path.MOVETO
path = Path(vertices, codes)
ax.add_patch(PathPatch(path, **kwargs))
axs = (plt.figure(constrained_layout=True)
.subplots(1, 2, sharex=True, sharey=True))
errs = [
(axs[0], "constant error", 0.05),
(axs[1], "variable error", 0.05 * np.sin(2 * t) ** 2 + 0.04),
]
for i, (ax, title, err) in enumerate(errs):
ax.set(title=title, aspect=1, xticks=[], yticks=[])
ax.plot(x, y, "k")
draw_error_band(ax, x, y, err=err,
facecolor=f"C{i}", edgecolor="none", alpha=.3)
plt.show()

Verweise
In diesem Beispiel wird die Verwendung der folgenden Funktionen, Methoden, Klassen und Module gezeigt: