web-dev-qa-db-ja.com

平均と標準偏差のプロット

異なるxポイントに関数の値がいくつかあります。 this SO question の答えのように、pythonで平均と標準をプロットしたい。 matplotlibを使用するとこれは簡単なはずですが、それができる関数の名前はわかりません。誰もがそれを知っていますか?

enter image description here

50
teaLeef

plt.errorbar を使用して、x、y、エラーデータをプロットできます(通常の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は、plt.plotと同じ引数を受け入れますが、yerrおよびxerrが追加されます。デフォルトはNoneです(つまり、空白のままにすると、plt.plotとして機能します)。

Example plot

69
Ffisegydd

この例で答えが見つかるかもしれません: 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()

これをプロットするもの:

enter image description here

8
Kiwi