Qualcuno può spiegare il seguente errore nel mio codice Python?
-
16-10-2019 - |
Domanda
sto analizzando un insieme di dati in Python per l'apprendimento strettamente scopo. Nel seguente codice che ho scritto, io sono sempre alcuni errori che non riesco a sbarazzarsi fuori. Ecco il primo codice:
plt.plot(decade_mean.index, decade_mean.values, 'o-',color='r',lw=3,label = 'Decade Average')
plt.scatter(movieDF.year, movieDF.rating, color='k', alpha = 0.3, lw=2)
plt.xlabel('Year')
plt.ylabel('Rating')
remove_border()
sto ottenendo i seguenti errori:
1. TypeError: 'str' object is not callable
2. NameError: name 'remove_border' is not defined
Inoltre, l'etichetta = 'Decade media' è che non rivela nella trama.
La cosa che mi confonde di più è il fatto che in un frammento di codice separato per i grafici (vedi sotto), non ho avuto il primo errore di cui sopra, anche se remove_border
era ancora un problema.
plt.hist(movieDF.rating, bins = 5, color = 'blue', alpha = 0.3)
plt.xlabel('Rating')
Le eventuali spiegazioni di tutti o alcuni degli errori sarebbe molto apprezzato. Grazie
In seguito alle osservazioni, sto inviando i dati e il traceback di seguito: decade_mean è riportata qui sotto.
year
1970 8.925000
1980 8.650000
1990 8.615789
2000 8.378947
2010 8.233333
Name: rating, dtype: float64
traceback:
TypeError Traceback (most recent call last)
<ipython-input-361-a6efc7e46c45> in <module>()
1 plt.plot(decade_mean.index, decade_mean.values, 'o-',color='r',lw=3,label = 'Decade Average')
2 plt.scatter(movieDF.year, movieDF.rating, color='k', alpha = 0.3, lw=2)
----> 3 plt.xlabel('Year')
4 plt.ylabel('Rating')
5 remove_border()
TypeError: 'str' object is not callable
ho risolto problema remove_border. E 'stato uno stupido errore che ho fatto. Ma non riuscivo a capire il problema con il 'str'.
Soluzione
Sembra che remove border
non è definito. È necessario definire la funzione prima utilizzata.
Non so dove arriva l'errore stringa, non mi è chiaro. Se pubblichi il pieno traceback sarà più chiaro.
Infine l'etichetta non è mostrare perché si deve chiamare il metodo plt.legend()
Altri suggerimenti
Mi sembra che remove_border()
non viene riconosciuta come una funzione. Vedendo come non hai elencato un pacchetto appartiene, lo si implementa questa te stesso? Python è indovinare che remove_border
è una stringa e si sta cercando di "chiamarlo" - trattarla come una funzione. Il secondo errore sta dicendo la stessa cosa, la funzione remove_border
non è definita da nessuna parte che Python può trovarlo.