Seite 1 von 1

mplot3d Funktionen mit read_csv verwenden z.B bar3d

Verfasst: Montag 3. Februar 2020, 13:19
von martin_zi
Hallo

Ich habe eine Frage.
In der Regel lese ich irgendwelche Daten ein mit.

df = pd.read_csv("name.csv",sep = ",")

Und in der Regel möchte ich sie dann irgendwie in Diagrammen darstellen.
Aber es artet immer im herumprobieren aus ich bekomme irgendwelche Fehlermeldungen mit denen ich nichts anfangen kann und ich weiß nie
was jetzt genau das Problem. ist.

Ich mache mal ein Beispiel:

xpos = [0,1,2,3,4,5,6,7,8,9,10]
ypos = [0,1,2,3,4,5,6,7,8,9,10]
zpos = [1,0,0,0,0,0,0,0,0,0,0]

dx = [1,1,1,1,1,1,1,1,1,1,1]
dy = [1,1,1,1,1,1,1,1,1,1,1]
dz = [9,2,1,3,4,5,6,3,9,1,2]

fig = plt.figure()
ax = fig.add_subplot(2, 2, 1, projection='3d')
ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color = "red" , shade=True)
plt.show()

funktioniert wunderbar. Aber würde ich die Daten in eine csv datein schreiben und einlesen,
weiß ich einfach nicht mehr wie man das am besten anstellt.
Und ich beginne einfach im Chaos alle Syntax Varianten auszuprobieren bis es irgendwann durch Zufall funktioniert.

Und in der Doku finde ich auch selten was es genau will:
https://matplotlib.org/mpl_toolkits/mplot3d/api.html

also versuche ich erstmal irgendwie die Werte zu bekommen.
xv = df[["x"]]
yv = df[["y"]]
zv = df[["z"]]

dann brauche ich eventuell

xv = df[["x"]].values
yv = df[["y"]].values
zv = df[["z"]].values

ax.bar3d(xv , yv, zv, xv , yv, zv, color = "red" , shade=True)

Und bekomme ValueError: incompatible dimensions for cross product
(dimension must be 2 or 3)

Ich verstehe einfach nicht was er will und welcher von den vielen Parametern falsch ist.
Wenn ich mir das im Debugger ansehe sehe ich auch das xpos und xv ganz unterschiedliche Datentypen sind.
Aber ich kapiere einfach nicht wie man es "richtig" macht. Und an welche Stelle im Doku man darauf schließen sollte.

Wie macht man es richtig und wie ließt man das Doku richtig das man die Fragen sich gar nicht stellen muss ?
Weil mit jeder neuen Funktion beginne ich wieder bei 0 und probiere einfach herum.

Grüße

Re: mplot3d Funktionen mit read_csv verwenden z.B bar3d

Verfasst: Montag 3. Februar 2020, 17:37
von __deets__
Das ist leider ein Thema, fuer das es keine geschlossene Antwort gibt. Zum einen sind die von dir verwandten Tools (matplotlib, pandas) qua ihrer Aufgabenstellung extrem vielseitig und flexibel. Mit nur sehr wenigen Aufrufen versuchen die ein sehr grossen Spektrum an Funktionalitaet abzudecken. Pandas zB liest ja mehr oder minder alles ein, und versucht nach Kraeften, da magisch rauszufinden, was das richtige ist. Entsprechend muss man Erfahrung damit sammeln, was fuer Eingaben zu welchen Ausgaben fuehren. Das ist komplizierter als eben beim csv-Modul. Und genauso versucht matplotlib mit einem oder wenigen plot-Aufrufen auch alle moeglichen Daten zu visualisieren. Auch da wirst du um den Aufbau von Intuition nicht rumkommen. Wenn's dich troestet - das ist auch fuer mich zumindest als jemand der damit nicht taeglich, aber gelegentlich arbeitet, immer so - aus der Gallerie etwas aussuchen, das gut ausschaut, und dann auf die eigenen Daten anpassen.