Seite 1 von 1

matplotlib.pyplot

Verfasst: Montag 3. September 2018, 19:44
von Pythonlearner123
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^^

Re: matplotlib.pyplot

Verfasst: Montag 3. September 2018, 20:21
von Sirius3
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()

Re: matplotlib.pyplot

Verfasst: Montag 3. September 2018, 22:37
von Pythonlearner123
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?

Re: matplotlib.pyplot

Verfasst: Montag 3. September 2018, 23:03
von __blackjack__
@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.