Ipywidgets은 Jupyter Notebook에 인터렉티브(interactive) 기능을 추가하거나 시각화하는데 사용되는 패키지입니다.
간단히 Jupyter Notebook에서 입력값과 출력값을 상호작용하도록 만들 수 있습니다.
설치는 pip
또는 conda
명령어를 이용하여 설치 할 수 있습니다.
pip install ipywidgets
또는 conda를 이용하여 설치 할 수 있습니다.
conda install -c conda-forge ipywidgets
widgets은 일반적으로 Slider, TextBox 등의 컨트롤처럼 브라우저에 표시되는 이벤트성 python개체입니다.
widgets을 사용하여 Jupyter Notebook에 인터렉티브 GUI를 구축할 수 있습니다.
widgets framework를 사용하려면 ipywidgets를 import
해야 합니다.
import ipywidgets as widgets
widget은 코드 셀 아래의 출력 영역 안에 표시됩니다.
widgets.IntSlider()
display()
를 사용하여 widget을 명시적으로 표시할 수도 있습니다.
w = widgets.IntSlider()
display(w)
동일한 위젯을 두 번 선언하면 프런트 엔드에 표시된 인스턴스가 서로 동기화된 상태로 유지됩니다.
sync_w = widgets.IntSlider()
display(sync_w)
display(sync_w)
close()
Method를 호출하여 위젯을 닫을 수 있습니다.
close_w = widgets.IntSlider()
display(close_w)
close_w.close()
widget의 value
속성을 이용하여 값을 조회하거나 변경 할 수 있습니다.
prop_w = widgets.IntSlider()
display(prop_w)
prop_w.value
0
prop_w.value = 35
value
이외에도 widget의 속성은 아래와 같이 조회 할 수 있습니다.
prop_w.keys
['_dom_classes', '_model_module', '_model_module_version', '_model_name', '_view_count', '_view_module', '_view_module_version', '_view_name', 'continuous_update', 'description', 'description_tooltip', 'disabled', 'layout', 'max', 'min', 'orientation', 'readout', 'readout_format', 'step', 'style', 'value']
prop_w.step
widgets.Text(value='Hello World!', disabled=True)
link
또는 jslink
함수를 사용하여 두 속성을 함께 연결할 수 있습니다.
text_w = widgets.FloatText()
slider_w = widgets.FloatSlider()
display(text_w, slider_w)
mylink = widgets.jslink((text_w, 'value'), (slider_w, 'value'))
unlink
함수를 사용하여 widget 연결을 해제 할 수 있습니다.
mylink.unlink()