代码
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开始的)
所以,如果有人知道更多,请分享。
答案 0 :(得分:1)
由于代码看起来很好并且在我的机器上运行正常,似乎你可能有一个名为“dict”的变量(参见this answer以供参考)。关于如何检查的一些想法:
type(dict)
),或查看其具有的属性/功能(dir(dict)
)。 尝试使用其他语法初始化字典
ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops={'facecolor':'black', 'shrink':0.05})
尝试使用替代语法显式实例化此类型的变量(正如您已经做过的那样)。