matplotlib.pyplot

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pythonlearner123
User
Beiträge: 7
Registriert: Montag 3. September 2018, 16:41

Hallo,
ich möchte abhängig von einer variable einen punkt grün 0der blau machen. Es handelt sich um ein 2D plot, die elemente sind in x und y gespeichert.

Ich hätte:

Code: Alles auswählen

fig, ax = plot.subplots(figsize=[1, 6])

for i in range(0,len(Liste)):

	if variable[i] ==True:

		plot.scatter(x[i],y[i],color = 'g')

	if variable[i] ==False:

		plot.scatter(x[i],y[i],color ='b')

plot.show()

wo ist mein fehler?

Vielen Dank

ich habe auch alle benötigten Bibiotheken importiert gehabt^^
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Wo der Fehler ist, wirst nur Du wissen, weil Du nicht verraten hast, was denn passiert.

Über Listen iteriert man direkt, was hier aber auch unnötig ist, weil man alles in einem Aufruf machen kann. Wenn Du schon ein Axis-Objekt, solltest Du es auch benutzen.

Code: Alles auswählen

fig, ax = plot.subplots(figsize=[1, 6])
c = ['g' if v else 'b' for v in variable]
ax.scatter(x, y, color=c)
fig.show()
Pythonlearner123
User
Beiträge: 7
Registriert: Montag 3. September 2018, 16:41

erstmal vielenm Dank.
was macht den das v in deiner if bw in "c = ['g' if v else 'b' for v in variable]" ? (bin Pythonneuling und versuche das zu verstehen^^)
könnte ich diesen Code auch benutzen wenn meine Variable andere Werte als true und false hat? z.B. Zahlenwerte?
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Pythonlearner123: Schau Dir in der Python-Dokumentation mal die „list comprehension“-Syntax an. Das `v` ist die Laufvariable.

Wenn Du zwischen zwei Farben wählen willst, dann kannst Du Deine Zahl an der entsprechenden Stelle durch einen Ausdruck zu `True` oder `False` auswerten. Also beispielsweise ``v < 42`` um alle Werte kleiner 42 in Grün und alle anderen in Blau zeichnen zu lassen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten