it-swarm.com.de

Mittelwert und Standardabweichung darstellen

Ich habe mehrere Werte einer Funktion an verschiedenen x-Punkten. Ich möchte den Mittelwert und den Standard in Python darstellen, wie die Antwort von this SO question . Ich weiß, dass dies mit matplotlib einfach sein muss, aber ich habe keine Ahnung davon Der Name der Funktion, die das kann. Weiß jemand Bescheid?

enter image description here

50
teaLeef

plt.errorbar kann verwendet werden, um x-, y- und Fehlerdaten zu zeichnen (im Gegensatz zu den üblichen plt.plot)

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.power(x, 2) # Effectively y = x**2
e = np.array([1.5, 2.6, 3.7, 4.6, 5.5])

plt.errorbar(x, y, e, linestyle='None', marker='^')

plt.show()

plt.errorbar akzeptiert die gleichen Argumente wie plt.plot mit zusätzlichen yerr und xerr, die standardmäßig auf Keine gesetzt sind (d. h., wenn Sie sie leer lassen, fungiert sie als plt.plot).

Example plot

69
Ffisegydd

Sie können eine Antwort mit diesem Beispiel finden: errorbar_demo_features.py

"""
Demo of errorbar function with different ways of specifying error bars.

Errors can be specified as a constant value (as shown in `errorbar_demo.py`),
or as demonstrated in this example, they can be specified by an N x 1 or 2 x N,
where N is the number of data points.

N x 1:
    Error varies for each point, but the error values are symmetric (i.e. the
    lower and upper values are equal).

2 x N:
    Error varies for each point, and the lower and upper limits (in that order)
    are different (asymmetric case)

In addition, this example demonstrates how to use log scale with errorbar.
"""
import numpy as np
import matplotlib.pyplot as plt

# example data
x = np.arange(0.1, 4, 0.5)
y = np.exp(-x)
# example error bar values that vary with x-position
error = 0.1 + 0.2 * x
# error bar values w/ different -/+ errors
lower_error = 0.4 * error
upper_error = error
asymmetric_error = [lower_error, upper_error]

fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
ax0.errorbar(x, y, yerr=error, fmt='-o')
ax0.set_title('variable, symmetric error')

ax1.errorbar(x, y, xerr=asymmetric_error, fmt='o')
ax1.set_title('variable, asymmetric error')
ax1.set_yscale('log')
plt.show()

Welche Grafiken dies:

enter image description here

8
Kiwi