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'.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top