Matplotlib pyplot.title(строка) возвращает ошибку

Когда я вызываю 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() работает нормально

Я использую python 2.7.5 и последнюю версию matplotlib на iMac с процессором I7 OSX 10.8 и 8-гигабайтным оператором и записью ipython.

Кто-нибудь знает, что происходит?

Ответ 1

У меня была та же проблема. Код был прав, но в интерпретаторе у меня были неверные вызовы xlabel(). повторного запуска интерпретатора (закрыть и снова открыть его) было достаточно для меня, нет необходимости переустанавливать все python/matplotlib!

Ответ 2

Это случилось со мной, потому что я попытался сделать plot.title = "Some string", чтобы переписать метод title(). Это точная причина, почему это происходит:). Как говорили другие, вам просто нужно перезапустить ядро, нет необходимости переустанавливать.

Ответ 3

Имел ту же проблему olben1, используя ipython, anaconda и -pylab. Переустановлен, и он сработал. Fwiw, используя anaconda env, облегчает удаление/переустановку.