[Python] ipyweights Library
개요
ipyweights의 라이브러리
안에 있는 interact 함수
를 사용함으로써 user interface control을 생성할 수 있습니다. 이를 통해 코드와 데이터를 상대적으로 확인할 수 있습니다.
1. Basic Interact
slider의 범위는 [-10,+3*10]이다.
1-1. Numeric Data
interact를 사용하기 위해서는 탐색하고자 하는 함수를 생성해야 한다.
from ipyweidgets import interact
def f(x):
return x+1
interact(f,x=10)
우리가 위의 slider를 움직일 때 해당 함수가 호출되고 함수를 통과해 나온 결과가 출력되는 것이다.
1-2. Bool Data
from ipywidgets import interact
def f(x,y):
return x+y+1
interact(f,x = True, y = False)
1-3. String Data
from ipywidgets import interact
def f(x,y):
return x+y
interact(f,x = 'Hey', y = 'Hi')
위의 박스 안에 문자열을 따로 타이핑하면 그 결과가 아래에 출력된다.
fixed option
fixed 옵션을 사용하면 해당 변수는 값이 고정되게 된다.
from ipywidgets import interact
from ipywidgets import interact, interactive, fixed, interact_manual
def f(x,y):
return x+y
interact(f,x = 1, y = fixed(20));
step option 사용
위의 옵션을 사용하지 않았을 때 slider의 default 범위는 [-10,+3*10]이다. 위의 옵션을 사용하여 slider의 범위를 지정해보자.
step 옵션을 사용하면 slider를 움직였을 때 증가되는 크기가 지정된 값만큼 증가된다. 아래의 결과는 슬라이더가 2씩 움직이는 것을 볼 수 있다.
from ipywidgets import interact
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets
def f(x):
return x
# 1
interact(f, x=ipywidgets.IntSlider(min=-10, max=30, step=2));
# 2
interact(f, x=(-10,30,2))
value 옵션 사용
value 옵션은 해당 변수 값에 초기화 값을 지정해줄 수 있다.
from ipywidgets import interact
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets
def f(x):
return x
interact(f, x=ipywidgets.IntSlider(min=-10, max=30, value = 10));
min, max 옵션 사용
해당 옵션을 사용하는 2 가지 예를 보여 드리겠습니다.
from ipywidgets import interact
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets
def f(x):
return x
# 1
interact(f, x=ipywidgets.IntSlider(min=-10, max=30));
# 2
interact(f, x=(-10,30));
함수 자체에 변수 초기값 지정
def f(x = 5):
return x
interact(f, x=(-10,30,1))
Dropdown menu UI 사용 (feat. passing a list of strings)
def f(x):
return x
interact(f, x=['apples','oranges']);
dropdown의 또 다른 표현
(x,y) x는 dropdown menu에서 이름이고, y는 이름에 해당하는 값이다.
def f(x):
return x
interact(f, x = [('one',10),('two',20)])