Seite 1 von 1

Slider/Schieberegler für Variablen erstellen

Verfasst: Samstag 27. Juni 2020, 10:23
von pagrf
Hallo liebe Python-Community,

erst einmal muss ich wohl sagen, dass ich noch ein ziemlicher Python-Anfänger bin. Trotzdem habe ich es geschafft ein kleines Programm zu programmieren, welches dazu dient den Verlauf von Infektionskrankheiten zu berechnen. Nun habe ich jedoch ein Problem, welches sich auch nach ewiger Recherche nicht beheben lässt...
Ich würde gerne die Variablen a, b und c (vgl. Code) in einen Slider/Schieberegler überführen, welchen man dann im Programm anpassen kann und sich dann auch die Kurven ändern.

Wäre das irgendwie möglich? Wenn ja würde ich mich sehr über jegliche Hilfestellungen freuen!

Liebe Grüße
Paul :)

Code: Alles auswählen

import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt

# Größe der Bevölkerung
N=83020000
# Zu Beginn (t=0) Infizierte
Inf=50
#Anfangsbedingungen festlegen:
S0=1-(Inf/N) #Die Bevölkerung wird normiert, d.h. 1=100%
I0=(Inf/N)
R0=0
D0=0
#Modell definieren
#Model
# -----------------------------------------------------
def SIRD(conc, t):
    S=conc[0]
    I=conc[1]
    _=conc[2]
    _=conc[3]
    #Variablen für das System
    a=0.8 #Infizierungsrate
    b=0.4 #Rate der Genesung
    c=0.01 #Sterberate
    #SIRD-System
    dS = - a * S * I
    dI = a * S * I - b * I -c*I
    dR = b*I 
    dD = c*I
    return(dS, dI, dR, dD)
conc0=[S0,I0,R0,D0]
dt=(1/7)
#Zeit in Wochen, Tage eingeben da dt=1/7
t=np.arange(600)*dt
r=integrate.odeint (SIRD, conc0,t)
fig = plt.figure(figsize=(12,4))
plt.plot(t,r[:,0],'b', linewidth =2, label='Gesund, infizierbar')
plt.plot(t,r[:,1],'r', linewidth =2, label='Infiziert')
plt.plot(t,r[:,2],'y', linewidth =2, label='Geheilt, Immun')
plt.plot(t,r[:,3],'g', linewidth =2, label='Verstorben')
plt.xlabel('Wochen')
#Skalierung der y-Achse
plt.ylim(0,1)
#Skalierung der x-Achse
plt.xlim(5,30)
plt.ylabel('Bevölkerungsanteil')
plt.legend()
plt.grid(True)
plt.savefig('XY_time.png', dpi=500)
plt.show()


Re: Slider/Schieberegler für Variablen erstellen

Verfasst: Montag 29. Juni 2020, 16:10
von tonikae
Aktive Steuerelement in Plotfenstern sind Widgets.
Ein Demo für Slider-/Radiobuttons/ und Buttons findest du hier.

https://matplotlib.org/3.1.1/gallery/wi ... _demo.html

Als Python-Code oder Jupyter-Notebook