1

コード

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=2)

ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=dict(facecolor='black', shrink=0.05),
            )

ax.set_ylim(-2,2)
plt.show()

http://matplotlib.org/1.2.0/users/annotations_intro.htmlから
戻り ます

TypeError: 'dict' object is not callable

私はなんとかそれを修正しました

xxx={'facecolor':'black', 'shrink':0.05}
ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=xxx,
            )

これが最善の方法ですか?
また、この問題の原因は何ですか? (これはPython 2.7で始まったことを知っています)

だから誰かがもっと知っているなら、共有してください。

4

1 に答える 1

1

コードは正常に見え、私のマシンで正常に実行されるため、「dict」という名前の変数があるようです (参照については、この回答を参照してください)。チェック方法に関するいくつかのアイデア:

  • Pylintを使用します。
  • 特定のビルトインが疑われる場合は、そのタイプを確認するか ( type(dict))、プロパティ/関数を調べます ( dir(dict))。
  • 対話型セッションでのみ問題が発生する場合は、新しいノートブックを開いて再試行してください。
  • 別の構文を試して、辞書を初期化してください

    ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
        arrowprops={'facecolor':'black', 'shrink':0.05})
    
  • 別の構文を使用して、この型の変数を明示的にインスタンス化してみてください (既に行ったように)。

于 2013-07-15T07:56:17.923 に答える