1

自分のデータでエラーバー プロットを作成しようとしています。X は 9 要素の ndarray です。Y と Yerr は 9x5 の ndarray です。私が電話するとき:

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

ValueError が表示されます:「yerr は y と同じ次元のスカラー、または 2xN でなければなりません。」

しかしY.shape == Yerr.shape、本当です。

Spyder 2.3.8 および Python 3.5.1 を搭載した 64 ビット Windows 7 で実行しています。Matplotlib は最新です。Visual Studio 2015 用の Visual C++ 再頒布可能パッケージをインストールしました。

何か案は?

編集:いくつかのデータ。

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

2 に答える 2

1

うーん....

エラーが発生したモジュールの 2962 ~ 2965 行を調べると、

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

データから

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 (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, = " の代入も少し奇妙に思えます。

于 2016-08-09T21:03:01.743 に答える