Kann jemand den folgenden Fehler in meinem Python -Code erklären?
-
16-10-2019 - |
Frage
Ich analysiere einen Datensatz in Python für streng Lernzwecke. In dem folgenden Code, den ich geschrieben habe, bekomme ich einige Fehler, die ich nicht loswerden kann. Hier ist zuerst der Code:
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()
Ich bekomme die folgenden Fehler:
1. TypeError: 'str' object is not callable
2. NameError: name 'remove_border' is not defined
Außerdem wird das Label = 'Jahrzehnt Durchschnitt' nicht im Diagramm angezeigt.
Was mich am meisten verwirrt, ist die Tatsache, dass in einem separaten Code -Snippet für Plots (siehe unten) nicht den ersten Fehler oben bekommen habe remove_border
war immer noch ein Problem.
plt.hist(movieDF.rating, bins = 5, color = 'blue', alpha = 0.3)
plt.xlabel('Rating')
Alle Erklärungen für alle oder einige der Fehler wären sehr geschätzt. Vielen Dank
Nach den Kommentaren veröffentliche ich die Daten und das Traceback unten: CEDOET_MEAN ist unten angegeben.
year
1970 8.925000
1980 8.650000
1990 8.615789
2000 8.378947
2010 8.233333
Name: rating, dtype: float64
zurück verfolgen:
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
Ich habe das Problem von REMED_BORDER gelöst. Es war ein dummer Fehler, den ich gemacht habe. Aber ich konnte das Problem mit dem 'Str' nicht herausfinden.
Lösung
Es scheint, dass remove border
ist nicht definiert. Sie müssen die Funktion vor dem Gebrauch definieren.
Ich weiß nicht, wo der String -Fehler kommt, ist mir nicht klar. Wenn Sie das vollständige Traceback veröffentlichen, wird es klarer.
Schließlich wird Ihr Etikett nicht angezeigt, da Sie die Methode aufrufen müssen plt.legend()
Andere Tipps
Scheint mir das zu sein remove_border()
wird nicht als Funktion erkannt. Sehen Sie, wie Sie kein Paket aufgelistet haben, zu dem Sie gehört, haben Sie dies selbst implementiert? Python vermutet das remove_border
ist eine Zeichenfolge und Sie versuchen, sie "anzurufen" - behandeln Sie sie wie eine Funktion. Der zweite Fehler sagt dasselbe, die Funktion remove_border
Noch nicht definiert, wo Python es finden kann.