2013-10-18 7 views
10

Quando chiamo pyplot.title('some string') lancia l'eccezione, 'str' object is not callable'. Ho copiato quanto segue dalla documentazione in linea matplotlib:Matplotlib pyplot.title (stringa) restituisce l'errore

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() 

e ottenere

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() funziona bene

sto usando python 2.7.5 e l'ultima versione di matplotlib su un iMac con un processore I7 OSX 10.8 e 8 gig ram e notebook ipython.

Qualcuno sa cosa sta succedendo?

+1

Funziona per me su OSX 10.8.5 con Python 2.7.5 e matplotlib 1.3.0. Come hai installato ipython e matplotlib? Il codice sopra è l'unico codice che evochi? Esegui 'ipython notebook --pylab' o come lo inizializzi? –

+1

Non riesco a riprodurlo. Hai un 'plt.title = 'blah'' da qualche parte nel tuo codice sopra questo? – tacaswell

+0

Ho reinstallato matplotlib (pip uninstall, quindi pip install) e tutto è OK. Prima di questo? Plt.title mi ha detto che plt.title era una stringa. Ora conferma che plt.title è una funzione. Non sono sicuro di averlo visto tutto ma sta funzionando. Grazie ragazzi. – olben1

risposta

1

Aveva lo stesso problema olben1, usando ipython, anaconda e il flag --pylab. Reinstallato e ha funzionato. Fwiw, utilizzando un enac anaconda rende più facile la disinstallazione/reinstallazione ..

16

Ho avuto lo stesso problema. Il codice andava bene, ma nell'interprete avevo usato in precedenza le chiamate errate di xlabel(). riavviare l'interprete (chiudilo e riaprilo) è stato abbastanza per me, non c'è bisogno di reinstallare tutto python/matplotlib!

+0

Ha funzionato come un fascino! – dasdachs

+0

Stesso problema: sto lavorando su Jupyter e, una volta riavviato il kernel, tutto era pronto. – nanselm2

11

Mi è successo perché ho provato a fare plot.title = "Some string" in modo da riscrivere il metodo title(). Questa è la ragione esatta per cui succede :). Come altri hanno già detto che devi solo riavviare il kernel, non c'è bisogno di reinstallarlo.

+1

Questa dovrebbe essere la risposta accettata qui ... dopo aver riscritto il 'titolo' è la causa principale del problema – Kickaha

Problemi correlati