简体   繁体   English

绘制平均值和标准偏差

[英]Plot mean and standard deviation

I have several values of a function at different x points. 我在不同的x点上有几个函数值。 I want to plot the mean and std in python, like the answer of this SO question . 我想在python中绘制均值和标准差,就像这个SO问题的答案一样。 I know this must be easy using matplotlib, but I have no idea of the function's name that can do that. 我知道使用matplotlib一定很容易,但是我不知道可以做到这一点的函数名称。 Does anyone know it? 有人知道吗?

在此处输入图片说明

plt.errorbar can be used to plot x, y, error data (as opposed to the usual plt.plot ) 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 accepts the same arguments as plt.plot with additional yerr and xerr which default to None (ie if you leave them blank it will act as plt.plot ). plt.errorbar接受相同的参数plt.plot额外yerrxerr (如果你保留空白它会采取行动,即其默认为无plt.plot )。

样例图

You may find an answer with this example : errorbar_demo_features.py 您可以通过以下示例找到答案: 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()

Which plots this: 绘制以下内容:

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM