Skip to content

Instantly share code, notes, and snippets.

@yunwoong7
Last active December 15, 2021 02:05
Show Gist options
  • Save yunwoong7/e26fd2c1878938fc01934044b6f2808b to your computer and use it in GitHub Desktop.
Save yunwoong7/e26fd2c1878938fc01934044b6f2808b to your computer and use it in GitHub Desktop.
Jupyter Notebook에 인터렉티브(interactive) 기능 추가 - ipywidgets

ipywidgets 이란?

Ipywidgets은 Jupyter Notebook에 인터렉티브(interactive) 기능을 추가하거나 시각화하는데 사용되는 패키지입니다.
간단히 Jupyter Notebook에서 입력값과 출력값을 상호작용하도록 만들 수 있습니다.

설치(Installation)

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

pip install ipywidgets

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

conda install -c conda-forge ipywidgets

widgets

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 properties

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

prop_w = widgets.IntSlider()
display(prop_w)

prop_w.value

0

prop_w.value = 35

Keys

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

약식으로 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()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment