Zwei Balkendiagramme in einem Diagramm

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
dausd
User
Beiträge: 7
Registriert: Dienstag 25. Mai 2021, 11:02

Hallo zusammen,

ich habe drei listen vorliegen.
- xwerte, das sind die Zahlen von 1 bis 1000
und
- zwei listen mit ywerten, sagen wir ygelb und yblau. Das sind jeweils Listen mit ebenfalls 1000 Messergebnissen.

Nun möchte ich gerne die beiden Listen mit Messungen als Balkendiagramme darstellen. EInzeln klappt das auch jeweils plt.bar().
Allerdings möchte ich, dass das eine Balkendiagramm "hinter" dem anderen gezeigt wird, in einer anderen Farbe, also beides im selben Diagramm.
Es handelt sich im zwei Ergebnislisten, einmal mit und einmal ohne eine "Ersparnis", daher sollen die beide gleichzeitig abgelesen werden können.

Leider bekomme ich das nicht hin.
Könnt ihr mir auf die Sprünge helfen?

Vielen Dank
dausd
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Hallo dausd,

wenn du deinen Code hier zeigst kann man dir sicher konkrete Hilfe leisten.

Aber vielleicht hilft das ja schon:
https://matplotlib.org/stable/gallery/l ... archart-py
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@dausd: Wenn Du das von rogerb verlinkte Beispiel-Diagramm nimmst, dann kannst Du erkennen, dass durch Beeinflussung der x-Position

Code: Alles auswählen

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, men_means, width, label='Men')
rects2 = ax.bar(x + width/2, women_means, width, label='Women')
die Balken der zwei Datenreihen genau nebeneinander plaziert werden. Wenn Du diese Positionierung nun ein wenig modifizierst, kannst Du die Balken auch so plazieren, dass sie sich teils oder ganz verdecken und so "hintereinanderliegend" erscheinen:

Code: Alles auswählen

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/4, men_means, width, label='Men')
rects2 = ax.bar(x + width/4, women_means, width, label='Women')
dausd
User
Beiträge: 7
Registriert: Dienstag 25. Mai 2021, 11:02

Hallo ihr beiden,

vielen Dank für eure Hilfe. Sorry das ich mich jetzt erst wieder melde. Ich habe einfach folgenden Code benutzt:

Code: Alles auswählen

plt.bar(xwerte, ywerte1, color="blue", width=1)
plt.bar(xwerte, ywerte2, color="green", width=1)
plt.xlabel("Beschriftung x")
plt.ylabel("Beschriftung y
plt.show()
und es hat funktioniert. Daher hatte ich diesen Thread auch aus den Augen verloren, entschuldigt bitte. Ich weiß das aber zu schätzen und danke euch sehr für eure Hilfe :)
Antworten