Matplotlib Barchart zeichnet nur noch einen Balken

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

Hi,

ich möchte ich horizontales Balkendiagramm aus mehreren Subplots erstellen.
Den zweiten Subplot lasse ich momentan noch leer. Momentan bekomme ich mit dem Code:

Code: Alles auswählen

import matplotlib.pyplot as plt 


 
data1=[24, 3, 2, 1]
year=['1-2', '2-3', '3-4', '4-5']

fig,ax=plt.subplots(2,1,figsize=(15,15))

ax[0].barh(year,data1,color="red")

plt.show()

ein gutes Ergebnis. Die Balkenbeschriftungen sind nun jedoch in Wahrheit nicht einstellig, sondern vierstellig. Wenn ich sie abändere auf Tausenderbereiche, wird plötzlich nur noch ein einiger Balken (24) geplottet. Auch mit dem Keyword "Height" kann ich ihn nicht verkleinern, sodass die anderen auch noch draufpassen.

Was mache ich falsch?
Beste Grüße
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Es hilft mehr Code zu zeigen, der nicht geht. Statt Code der tut was du willst, und ein bisschen Prosa, wie es dann zerfaellt.
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

Der Code, der dann zu besagtem ungewünschten Verhalten führt:

Code: Alles auswählen

import matplotlib.pyplot as plt 


 
data1=[24, 3, 2, 1]
year=['1000-2000', '2000-3000', '3000-4000', '4000-5000']

fig,ax=plt.subplots(2,1,figsize=(15,15))

ax[0].barh(year,data1,color="red")

plt.show()
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also für mich geht auch die einstellige Nummer nicht. Generell sind keine strings erlaubt sagt er mir.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@G-Rizzle: Also der Code in Deinem letzten Beitrag führt bei mir zu diesem Bild:
Bild
Wo ist da jetzt das Problem?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten