2016-08-08 3 views
1

私のデータでエラーバープロットを作成しようとしています。 Xは9要素のndarrayです。 YとYerrは9x5 ndarrayです。私が呼び出すとき:matplotlib.pyplot.errorbarはエラーではありませんか?

matplotlib.pyplot.errorbar(X, Y, Yerr) 

私はValueErrorを得る: "yerrはスカラー、yと同じ次元、または2xNでなければならない"

ただし、Y.shape == Yerr.shapeはTrueです。

私はSpyder 2.3.8とPython 3.5.1で64ビットWindows 7を実行しています。 Matplotlibは最新です。私はVisual C++ Redistributable for Visual Studio 2015をインストールしました。

アイデアはありますか?

編集:データがありません。

X=numpy.array([1,2,3]) 
Y=numpy.array([[1,5,2],[3,6,4],[9,3,7]]) 
Yerr=numpy.ones_like(Y) 
+0

は、うーん、この問題 –

+0

をトリガーする例データを生成し、いくつかのコードを含んで..エラーメッセージは '* xerr */* yerr *:[スカラー| N、Nx1、または2xNの配列のような]]。 –

答えて

0

...とにかく

、これは仕事ができる:

for y, yerr in zip(Y, Yerr): 
    matplotlib.pyplot.errorbar(X, y, yerr) 
0

うーん....

我々はデータから

1 T len(yerr) > 1 
2 T len(yerr) == len(y) 
3 T iterable(yerr[0]) 
4 T len(yerr[0]) > 1 
5 T 1 and not (2 and not (3 and 4) 

if len(yerr) > 1 and not ((len(yerr) == len(y) and not (iterable(yerr[0]) and len(yerr[0]) > 1))) 

を見つけるエラーが発生したモジュールのライン2962年から2965年を研究することによってただし、次のテストが合格しなかった場合、これは発生しません。

if (iterable(yerr) and len(yerr) == 2 and 
       iterable(yerr[0]) and iterable(yerr[1])): 
.... 

そして、それがトリガーされていない、LEN(yerrは)=ので3

すべては次元を除いて、チェックアウトしているようです。これは動作します:

X = numpy.tile([1,2,3],3) 
Y = numpy.array([1,5,2,3,6,4,9,3,7]) 
Yerr = numpy.ones_like(Y) 

エラーの原因はわかりません。 "l0、="割り当てもやや奇妙なようです。たぶん、「Yの寸法」でドキュメントが実際の1xNを意味

関連する問題