반응형

ipywidgets 이란?

ipywidgets은 Jupyter Notebookr과 JupyterLab에서 인터렉티브(interactive) 기능을 추가하거나 시각화하기 위한 라이브러리입니다. 다양한 그래픽 컨트롤과 위젯을 사용하여 Jupyter Notebook 내에 데이터 분석과 시각화를 위한 대화형 사용자 인터페이스를 만들 수 있습니다. Button, Slider, Progressbar, Text Box 등 다양한 인터페이스 위젯을 지원합니다. 예를 들어 사용자가 실시간으로 데이터를 탐색하고 상호 작용할 수 있는 대화형 대시보드를 만들 수 있습니다. 

ipywidgets는 데이터 탐색과 분석을 위해 Jupyter Notebook을 사용하는 분석가나 개발자가 사용해 보면 매우 좋을 것 같습니다.


설치 (Installation)

설치는 pip 또는 conda 명령어를 이용하여 설치할 수 있습니다.

pip install ipywidgets

또는 conda를 이용하여 설치할 수 있습니다.

conda install -c conda-forge ipywidgets

Widgets

widgets은 일반적으로 Slider, Text Box 등의 컨트롤처럼 브라우저에 표시되는 이벤트성 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를 호출하여 위젯을 닫을 수 있습니다.

Widget properties

widget의 value 속성을 이용하여 값을 조회하거나 변경 할 수 있습니다.

prop_w = widgets.IntSlider()
display(prop_w)
prop_w.value

Output:

47

prop_w.value = 35

Keys

value 이외에도 widget의 속성은 아래와 같이 조회할 수 있습니다.

prop_w.keys

Output:

['_dom_classes',
 '_model_module',
 '_model_module_version',
 '_model_name',
 '_view_count',
 '_view_module',
 '_view_module_version',
 '_view_name',
 'behavior',
 'continuous_update',
 'description',
 'description_allow_html',
 'disabled',
 'layout',
 'max',
 'min',
 'orientation',
 'readout',
 'readout_format',
 'step',
 'style',
 'tabbable',
 'tooltip',
 'value']
prop_w.step

Output:

1

약식으로 widget선언과 동시에 속성값을 초기화

widgets.Text(value='Hello World!', disabled=True)

두 개의 widget 연결

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()

ipywidgets에서 제공되는 각 widget목록과 사용방법

반응형