我的代码在3个数组中生成值和相应的标准差,即3x1数组。我想把它们一起画成一个绝对的误差条图。对于指定yerr,因为它只接受标量或(N,)或nx2,所以我使用np.拉威尔将所有3x1数组转换为一个N x 1数组。但是我仍然得到了error值error:err必须是[scalar | N,Nx1或2xN array like]
代码如下:
import numpy as np
import matplotlib.pyplot as plt
names_p=['p1','p1','p1','p2','p2','p2','p3','p3','p3','p4','p4','p4','p5','p5','p5','p6','p6','p6'] #### The names are repeated three times because for each variable I have three values
y=(p1sdm2N_ratem,p2sdm2N_ratem,p3sdm2N_ratem,p4sdm2N_ratem,p5sdm2N_ratem,p6sdm2N_ratem) #### each of these 6 elements is 3 x 1 E.g. p1sdm2N_ratem=(0.04,0.02,0.03)
c=np.ravel((p1sdm2N_ratestd,p2sdm2N_ratestd,p3sdm2N_ratestd,p4sdm2N_ratestd,p5sdm2N_ratestd,p6sdm2N_ratestd)) ### each of these 6 elements is 3x1 e.g. p1sdm2N_ratestd=(0.001,0.003,0.001)
plt. errorbar(names_p,y,yerr=c)
这给出了我前面提到的错误,即使c是一个18x1数组。(这不是一个数组的数组,我查过了。) 注意,按照我设置变量的方式
plt.scatter(names_p,y)
以及
plt. errorbar(names_p,y,yerr=None)
工作,当然没有误差条。你知道吗
我很感激任何帮助!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐