45

当我调用pyplot.title('some string')它时会引发异常,'str' object is not callable'. 我从 matplotlib 在线文档中复制了以下内容:

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

# the histogram of the data
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)


plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

并得到

TypeError                                 Traceback (most recent call last)
<ipython-input-158-40fe7a831b06> in <module>()
      8 plt.xlabel('Smarts')
      9 plt.ylabel('Probability')
---> 10 plt.title('Histogram of IQ')
     11 plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
     12 plt.axis([40, 160, 0, 0.03])

TypeError: 'str' object is not callable

pyplot.suptitle()工作正常

我在具有 I7 处理器 OSX 10.8 和 8 gig ram 和 ipython 笔记本的 iMac 上使用 python 2.7.5 和最新版本的 matplotlib。

有谁知道发生了什么?

4

10 回答 10

97

它发生在我身上,因为我试图这样做plot.title = "Some string"重写了title()方法。这就是它发生的确切原因:)。正如其他人所说,您只需重新启动内核,无需重新安装。

于 2016-04-25T00:53:13.700 回答
30

我有同样的问题。代码很好,但在解释器中,我以前使用了不正确的 xlabel() 调用。重新启动解释器(关闭并重新打开它)对我来说就足够了,无需重新安装所有 python/matplotlib !

于 2015-03-27T09:32:33.777 回答
12

我以前不小心 plt.title = '' 时发生过这种情况

之后,该功能不再是功能。重启python内核或者重新导入plt库都可以解决。

不重新安装。重新进口。

于 2018-03-11T14:10:04.713 回答
4

尝试通过运行以下代码重新加载 matplotlib:

import matplotlib.pyplot as plt
from importlib import reload
plt=reload(plt)

祝你好运

于 2021-02-23T12:30:13.960 回答
3

无需重新安装任何库。要解决此问题,您只需重新启动 Jupyter 内核即可。当您设置 plt.title = 'something' 时会发生这种情况。它覆盖 PyPlot 函数并使它们无法访问。重新启动内核将帮助您。

于 2020-12-01T15:27:11.417 回答
1

有同样的问题 olben1,使用 ipython、anaconda 和 --pylab 标志。重新安装,它工作。Fwiw,使用 anaconda env 使卸载/重新安装更容易..

于 2014-01-09T15:27:26.083 回答
1

在不重新启动的情况下,我发现.set_title()按照我的绘图方法更改为方法已导致成功通过而没有错误。

于 2019-11-09T04:35:03.297 回答
1

我在写plt.title = "This is a sample plot"而不是plt.title("This is a sample plot"). 我收到了错误:

typeerror 'str' 对象不可调用

重新启动 Spyder IDE 为我解决了这个问题。

于 2020-07-05T14:56:40.103 回答
1

删除线后我遇到了同样的问题

%matplotlib inline

并重新启动笔记本再次解决了我的问题。

于 2021-07-06T16:47:59.907 回答
0

plt.title('xyz') :'str' 对象不可调用。

只需重新启动您的终端/ ide。这将解决问题。

于 2020-11-27T12:45:02.410 回答