0

Pythonでエラーバーを使用していくつかのデータをプロットしようとしていますが、常に次のエラーメッセージが表示されます:

  (21,) (21,) (2, 21) (21,)
  Traceback (most recent call last):
  File "q_profil.py", line 104, in <module>
ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-') #np.array([qstdev,qstdev]
 File "/usr/lib64/python2.7/site-packages/matplotlib/axes.py", line 5547, in errorbar
in cbook.safezip(y,yerr[0])]
 File "/usr/lib64/python2.7/site-packages/matplotlib/cbook.py", line 1225, in safezip
raise ValueError(_safezip_msg % (Nx, i + 1, len(arg)))
ValueError: In safezip, len(args[0])=21 but len(args[1])=1

コード:

  qmean = np.mean(qn,axis=1)*1e03
  qstdev = np.std(qn,axis=1)*1e03
  xerr=[qstdev,qstdev]
  print qmean.shape, qstdev.shape, np.shape(xerr),np.arange(-5,5.5,0.5).shape

  fig = plt.figure()
  ax = fig.add_subplot(111)
  ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=[qstdev,qstdev])

私もすでに試しました

  ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=qstdev)

  ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=np.array([qstdev,qstdev]))

常に同じエラーで。xerr=None でさえこれを取得しました。

ご覧のとおり、最初のコードの最初の行である qmean (私のデータ)、qstdev (エラー データ配列のサイズ)、および範囲配列 (-5 から 5.5 の範囲) の形状を出力しました。ブロック。

為に

  ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=xerr)

len(args[1])=2 でエラーが発生しました

何を試してみるべきかアドバイスはありますか?ウェブ上で役立つヒントが見つかりませんでした。通常、ユーザーは私が使用しているのとまったく同じコードで問題を解決しました。私のデータの形状は正しいように見えるので、エラーについて疑問に思っています。

4

1 に答える 1