[FIXED] Fehler beim Zeichnen eines Tortendiagramms, wie kann er behoben werden?

Ausgabe

Ich habe zum ersten Mal versucht, Diagramme zu zeichnen, und versucht, ein bisschen Code zu schreiben, in dem Sie eingeben können, welche Parameter Sie grafisch darstellen möchten, und es dann als Kreisdiagramm darstellt. Aber als ich versuchte, es auszuführen, gab es eine Reihe von Fehlern zurück

import pandas as pd
import matplotlib

plot = input()
plot = str(plot)

df = pd.DataFrame({'Perimeter': [8, 16, 20],
                   'Area': [2, 16, 25]},
                  index=['Square 1', 'Square 2', 'Square 3'])
plot = df.plot.pie(y={plot}, figsize=(5, 5))

Die Fehler sind:

C:\Users\KIAN\PycharmProjects\pythonProject\k.py:12: FutureWarning: Das Übergeben eines Sets als Indexer ist veraltet und wird in einer zukünftigen Version ausgelöst. Verwenden Sie stattdessen eine Liste. plot = df.plot.pie(y={plot}, figsize=(5, 5))

Traceback (letzter Aufruf zuletzt):

Datei “C:\Users\KIAN\PycharmProjects\pythonProject\k.py”, Zeile 12, in plot = df.plot.pie(y={plot}, figsize=(5, 5))

Datei “C:\Users\KIAN\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\plotting_core.py”, Zeile 1613, in pie return self(kind=”pie”, **kwargs)

Datei “C:\Users\KIAN\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\plotting_core.py”, Zeile 960, in call
data.index.name = y

Datei “C:\Users\KIAN\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\indexes\base.py”, Zeile 1751, in name may_extract_name(value, None, type(self))

Datei “C:\Users\KIAN\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\indexes\base.py”, Zeile 7421, in may_extract_name TypeError(f”{cls. name }.name auslösen muss ein Hash-Typ sein”)

TypeError: Index.name muss ein hashfähiger Typ sein

Irgendeine Idee, wie man diese beheben kann oder was sie verursacht?

Lösung

Die Variable plotsollte nicht in einem Satz sein, Sie müssen sie nicht einmal einem zuweisen str, inputwird bereits eine Zeichenfolge sein, auch wenn Sie Zahlen eingeben:

plot = input()

df = pd.DataFrame({'Perimeter': [8, 16, 20],
                   'Area': [2, 16, 25]},
                  index=['Square 1', 'Square 2', 'Square 3'])
plot = df.plot.pie(y=plot, figsize=(5, 5))

Ausgabe für Area:

Bild


Beantwortet von –
Nuri Taş


Antwort geprüft von –
Clifford M. (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like