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, облегчает удаление/переустановку.