Diagramm - Kurve zwischen 0 und Wert farblich füllen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
SautaRoc
User
Beiträge: 29
Registriert: Donnerstag 20. September 2018, 13:18

Donnerstag 27. September 2018, 12:16

Hallo,

ich habe aus einem panda-Dataframe ein Diagramm erstellt. Das klappt soweit ganz gut. Dann wollte ich Bereiche im Diagramm farblich füllen und habe mich dabei der Beispieldateien in der matplotlib bedient.

folgendes war das Ergebnis:

Bild


der code dazu war:

Code: Alles auswählen

plt.fill_between(front.Hedgeveraenderung, front.Basis, where=front.Hedgeveraenderung > 0, facecolor='green')
plt.fill_between(front.Hedgeveraenderung, front.Basis, where=front.Hedgeveraenderung < 0, facecolor='red')
man kann erkenn, dass der grüne Bereich wie gewünscht zwischen 0 und positiven Werten gefüllt wird. Das Problem ist der Rote Bereich, wo aus irgendeinem Grund ein Versatz ensteht. Gefüllt werden soll hier zwischen 0 und negativen Werten.
Benutzeravatar
ThomasL
User
Beiträge: 378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Donnerstag 27. September 2018, 12:21

Das ist doch der Fall, alle negativen Werte links von 0 sind rot.
Du meinst doch was anderes, oder? Versuche das, zusätzlich zu der Kondition "where=front.Hedgeveraenderung < 0" hinzu zu fügen.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
SautaRoc
User
Beiträge: 29
Registriert: Donnerstag 20. September 2018, 13:18

Donnerstag 27. September 2018, 12:55

so funktionierts:

Code: Alles auswählen

plt.fill_betweenx(front.Basis, front.Hedgeveraenderung, x2=0, where=front.Hedgeveraenderung > 0, facecolor='green')
plt.fill_betweenx(front.Basis, front.Hedgeveraenderung, x2=0, where=front.Hedgeveraenderung < 0, facecolor='red')
Antworten