napisałem poniższy kod w ipython notebooka do generowania funkcji esicy kontrolowane przez parametry a, która określa położenie środka esicy, a B, który określa jej szerokość:ipython notebook interaktywnych funkcji: jak ustawić zakres suwaka
%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())
chciałem dodać interaktywność do parametrami aib więc ponownie napisał funkcję jak poniżej:
%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)
Czy istnieje jakiś sposób, aby se zakres suwaków być symetryczny (na przykład wokół zera)? Nie wydaje mi się to możliwe, po prostu ustawiając wartość początkową dla parametrów.
Dzięki. Prawdopodobnie powinienem uczynić tę drugą część osobnym pytaniem, więc mógłbym wybrać twój jako odpowiedź dla zakresu. – MyCarta
@MyCarta, zobacz moją edycję - czy to pomaga? – cel
To, czego szukam, to sposób na przywracanie wartości parametrów aib b dynamicznie, ponieważ są one modifeid przez suwaki. Zdecydowanie teraz osobne pytanie, które o tym myślę. – MyCarta