Histogramm wird geplottet, aber Fehler u. Abbruch beim Plotten der Wahrscheinlichkeitsdichtefunktion

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
dF23Bc95
User
Beiträge: 1
Registriert: Freitag 8. Mai 2020, 17:47

Hallo da draußen,

ich bin Python-Anfänger und möchte Histogramme mit Wahrscheinlichkeitsdichtefunktion plotten.

Das erste Histogramm soll eine große Menge an gleichverteilten Zufallszahlen enthalten, die mit der NumPy-Funktion random.uniform erzeugt wurden.
Beispiel:

g = random.uniform(low=0.0, high=6.0, size=6000)
plt.figure(1)
ax1 = plt.subplot(211)
plt.xlabel(r'$x$')
plt.ylabel(r'$P(x)$')

# Zeichnet Histogramm der Gleichverteilung, dieses wird auch richtig geplottet:
ax1.hist(g, bins=100, density=True)

# In das Histogramm will ich die theoretische Wahrscheinlichkeitsdichtefunktion einzeichnen:
x = linspace(min(g), max(g), 6000) # x-Werte
y = 1/(max(1)-min(1)) # Wahrscheinlichkeitsdichtefunktion der Gleichverteilung
ax1.plot(x1, y1, 'r-')

# Die letzte Zeile führt zu einem Fehler und zu einem Abbruch des Programms. In der Python-Konsole wird folgende Fehlermeldung angezeigt:
File "Histogram1", line 21, in <module>
ax1.plot(x1, y1, 'r-')
File "C:\Users\Alle\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 225, in __call__
yield from self._plot_args(this, kwargs)
File "C:\Users\Alle\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 391, in _plot_args
x, y = self._xy_from_xy(x, y)
File "C:\Users\Alle\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 270, in _xy_from_xy
"have shapes {} and {}".format(x.shape, y.shape))
ValueError: x and y must have same first dimension, but have shapes (6000,) and (1,)

Python zeichnet das Histogramm mit den richtigen Achsentiteln u. -beschriftungen, aber es wird kein Graph der Wahrscheinlichkeitsdichtefunktion ins Histogramm gezeichnet.
Danach bricht das Programm ab
(ich wollte noch ein zweites Histogramm von normalverteilten Zufallszahlen plotten, doch da wird nur das leere Diagramm mit den Achsenbeschriftungen angezeigt, aber keine Histogrammbalken und keine Wahrscheinlichkeitsdichtefunktion).
Was muss ich tun, um den oben genannten Fehler zu beheben?

Vielen Dank im Voraus für eure Hilfe!
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Man sollte nicht alles aus numpy importieren, weil damit so wichtige eingebaute Funktionen wie min, max, sum, etc. überschrieben werden. numpy wird üblicherweise als `import numpy as np` importiert und alles über np.xyz angesprochen.
Der Sinn von max(1)-min(1) -> 0 -> 1/0 -> unendlich erschließt sich mir nicht. x1 und y1 werden nirgends definiert.
Antworten