I den Code in IPython Notebook hat eine Sigmoid-Funktion durch die Parameter a gesteuert zu erzeugen, die die Position des Sigmoid Zentrum definiert, und B, die seine Breite definiert:IPython Notebook interaktive Funktion: wie den Schieber Bereich einzustellen
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x,a,b):
#sigmoid function with parameters a = center; b = width
s= 1/(1+np.exp(-(x-a)/b))
return 100.0*(s-min(s))/(max(s)-min(s)) # normalize sigmoid to 0-100
x = np.linspace(0,10,256)
sigm = sigmoid(x, a=5, b=1)
fig = plt.figure(figsize=(24,6))
ax1 = fig.add_subplot(2, 1, 1)
ax1.set_xticks([])
ax1.set_xticks([])
plt.plot(x,sigm,lw=2,color='black')
plt.xlim(x.min(), x.max())
ich wollte Interaktivität für Parameter a und b hinzuzufügen, so dass ich die Funktion, wie unten neu geschrieben:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from IPython.html.widgets import interactive
from IPython.display import display
def sigmoid_demo(a=5,b=1):
x = np.linspace(0,10,256)
s = 1/(1+np.exp(-(x-a)/(b+0.1))) # +0.1 to avoid dividing by 0
sn = 100.0*(s-min(s))/(max(s)-min(s)) # normalize sigmoid to 0-100
fig = plt.figure(figsize=(24,6))
ax1 = fig.add_subplot(2, 1, 1)
ax1.set_xticks([])
ax1.set_yticks([])
plt.plot(x,sn,lw=2,color='black')
plt.xlim(x.min(), x.max())
w=widgets.interactive(sigmoid_demo,a=5,b=1)
display(w)
gibt es eine Möglichkeit der Bereich der Schieberegler, um se symmetrisch (zB um Null zu sein) Es scheint mir nicht möglich zu sein, nur den Startwert für die Parameter zu setzen.
Danke. Ich sollte diesen zweiten Teil wahrscheinlich zu einer separaten Frage machen, damit ich Ihre Antwort als Antwort für den Bereich wählen kann. – MyCarta
@MyCarta, siehe meine Bearbeitung - hilft das? – cel
Was ich suche, ist eine Möglichkeit, die Werte der Parameter a und b dynamisch zu schreiben, da sie von den Schiebereglern modifiziert werden. Definitiv eine separate Frage, jetzt, wo ich darüber nachdenke. – MyCarta