问题
我有一个由导入数据制作的点图。一组数据显示数据集的各个成员之间的平均值的时间序列,另一组显示在采用平均值之前每个时间步的这些成员的标准偏差(SD)。我的顾问要我添加"胡须"对表示平均值的点显示+/- 1 SD。我将在下面提供一个简化的工作示例。
代码(示例)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#Generate some data
x = np.empty((7,9))
for i in range(7):
x[i,:] = np.arange(1,10,(1+(i*.02)))
print x
#Find standard devs down each column
std = np.std(x,axis=0)*5
print std
#Get the mean of x data down each column
xmean = np.mean(x,axis=0)
print xmean
#Plot xmean data & x's stan. devs
legendlabels = ['Mean of members','S.D. of members']
time = np.arange(0,9)
fig, ax = plt.subplots(figsize=(11,6))
data1 = ax.scatter(time,xmean,s=70,color='k',marker='^')
data2 = ax.scatter(time,std, s=70,color='k')
ax.legend([data1,data2],legendlabels,loc=2)
ax.grid()
plt.show()
SD乘以5,因此添加时,胡须实际上是可见的。结果应该是这样的。
问题
如何将胡须添加到代表+/- 1对应SD的三角形(下面圆圈的值)?鉴于我的实际数据并未显示沿y方向的范围,我不认为箱形图最适合此...
答案 0 :(得分:2)
您可以添加以下错误栏:
ax.errorbar(time, xmean, yerr=std)
如果yerr
是一个大小为time
的一维数组,则相对于您的数据(yerr
),{+ 3}会在+/- xmean
处绘制误差线。 }}):
如果是标量数,len(N)类数组对象,或者是Nx1 类似于数组的对象,错误栏以+/-值相对绘制 对数据。
使用您的代码,结果是:
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.errorbar