본문 바로가기
Python/Data Exploration and Visualization

Creating Interactive Visualizations with Python

by Quantrol 2023. 1. 24.
반응형

데이터 시각화는 복잡한 데이터 세트를 이해하고 전달하기 위한 강력한 도구입니다. 그러나 정적 시각화는 데이터 탐색 및 분석 여정에서 지금까지만 사용할 수 있습니다. 대화형 시각화를 통해 데이터 포인트를 확대/축소, 패닝 및 마우스로 가리킬 수 있는 기능을 제공하여 정적 플롯을 넘어 데이터를 더 깊이 파고들 수 있습니다. 광범위하고 강력한 라이브러리가 있는 Python은 대화형 시각화를 만드는 데 이상적인 선택입니다. 이 기사에서는 대화형 시각화를 만들기 위해 Python에서 인기 있는 몇 가지 라이브러리를 살펴봅니다.

 

Getting Started

대화형 시각화 만들기에 들어가기 전에 먼저 대화형 시각화가 중요한 이유에 대해 논의해 보겠습니다. 대화형 시각화를 통해 보다 자연스러운 방식으로 데이터를 탐색할 수 있습니다. 이를 통해 패턴과 이상값을 빠르게 식별하고 추가 분석을 위해 데이터의 특정 부분을 드릴다운할 수 있습니다. 또한 대화형 시각화는 더 매력적이며 더 많은 대상이 데이터에 더 쉽게 액세스할 수 있도록 합니다.

대화형 시각화를 만들기 위해 Python에서 사용할 수 있는 많은 라이브러리가 있습니다. 일부 인기 있는 것에는 Plotly, Bokeh 및 Altair가 있습니다. 이 기사에서는 Python에서 대화형 시각화를 생성하는 데 가장 널리 사용되는 라이브러리인 Plotly 및 Bokeh에 중점을 둘 것입니다. 시작하려면 명령 프롬프트에서 다음 명령을 실행하여 Plotly 및 Bokeh를 설치해야 합니다.

 

pip install plotly bokeh

 

라이브러리가 설치되면 첫 번째 대화형 시각화를 만들 준비가 된 것입니다.

 

Plotly

Plotly는 Python에서 아름다운 대화형 시각화를 만들 수 있는 라이브러리입니다. 위에 지어져 있습니다

 

널리 사용되는 라이브러리인 Matplotlib는 호버 레이블, 확대/축소 및 이동과 같은 추가 기능을 제공합니다. Plotly의 주요 이점 중 하나는 웹 기반 시각화를 쉽게 만들 수 있는 JavaScript 형식의 대화형 시각화 생성 지원 기능이 내장되어 있다는 것입니다.

Plotly를 시작하려면 먼저 라이브러리를 가져와 그림을 초기화해야 합니다. 그런 다음 데이터를 추가하고 Plotly에서 제공하는 다양한 기능을 사용하여 시각화의 모양을 사용자 정의할 수 있습니다.

다음은 Plotly를 사용하여 간단한 산점도를 만드는 예입니다.

 

import plotly.graph_objs as go

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

trace = go.Scatter(x=x, y=y)
data = [trace]

fig = go.Figure(data=data)
fig.show()

 

이렇게 하면 5개의 점이 있는 간단한 산점도가 생성됩니다. 이 Scatter함수는 x 및 y 값을 인수로 사용하고 산점도를 생성합니다. 이 show()함수는 플롯을 표시합니다.

그러나 Plotly는 대화형 시각화를 만들 때 정말 빛을 발합니다. 몇 줄의 코드만으로 호버 레이블, 확대/축소 및 이동 기능을 추가할 수 있습니다. 산점도에 호버 레이블을 추가하는 예는 다음과 같습니다.

 

trace = go.Scatter(x=x, y=y, mode='markers', marker=dict(size=10, color='blue'))
data = [trace]

layout = go.Layout(title='Scatter Plot', xaxis=dict(title='X Axis Label'), yaxis=dict(title='Y Axis Label'))
fig = go.Figure(data=data, layout=layout)
fig.update_layout(hovermode='closest')
fig.show()

 

이렇게 하면 데이터 포인트 위로 마우스를 가져갈 때 데이터 포인트의 x 및 y 값을 표시하는 마우스 오버 레이블이 추가됩니다. 또한 다음 코드 줄을 추가하여 확대/축소 및 이동 기능을 활성화할 수 있습니다.

 

fig.update_layout(dragmode='pan', xaxis=dict(fixedrange=True), yaxis=dict(fixedrange=True))

 

이렇게 하면 사용자가 플롯을 팬 및 확대/축소할 수 있습니다.

 

Bokeh

Bokeh는 Python에서 대화형 시각화를 생성하기 위한 또 다른 인기 있는 라이브러리입니다. 인기 있는 라이브러리인 Matplotlib 위에 구축되었으며 호버 레이블, 확대/축소 및 이동과 같은 추가 기능을 제공합니다. Bokeh는 또한 웹 기반 시각화를 생성하기 위해 제작되었으며 이를 통해 웹 페이지 및 앱에 쉽게 포함할 수 있는 시각화를 생성할 수 있습니다.

Bokeh를 시작하려면 먼저 라이브러리를 가져와 그림을 만들어야 합니다. 그런 다음 데이터를 추가하고 Bokeh에서 제공하는 다양한 기능을 사용하여 시각화의 모양을 사용자 정의할 수 있습니다.

다음은 Bokeh를 사용하여 간단한 산점도를 만드는 예입니다.

 

from bokeh.plotting import figure, show

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

p = figure(title='Scatter Plot')
p.scatter(x, y)
show(p)

 

이렇게 하면 5개의 점이 있는 간단한 산점도가 생성됩니다. 이 scatter()함수는 x 및 y 값을 인수로 사용하고 산점도를 생성합니다. 이 show()함수는 플롯을 표시합니다.

Bokeh를 사용하면 호버 레이블 및 확대/축소와 같은 대화형 기능을 추가할 수도 있습니다. 산점도에 호버 레이블을 추가하는 예는 다음과 같습니다.

 

from bokeh.models import HoverTool

hover = HoverTool(tooltips=[('X','@x'), ('Y','@y')])
p.add_tools(hover)

 

이렇게 하면 데이터 포인트 위로 마우스를 가져갈 때 데이터 포인트의 x 및 y 값을 표시하는 마우스 오버 레이블이 추가됩니다. 또한 다음 코드 줄을 추가하여 확대/축소를 활성화할 수 있습니다.

 

from bokeh.models import HoverTool

hover = HoverTool(tooltips=[('X','@x'), ('Y','@y')])
p.add_tools(hover)

 

이렇게 하면 사용자가 마우스 휠을 사용하여 플롯을 확대 및 축소할 수 있습니다.

 

Conclusion

이 기사에서는 대화형 시각화를 만들기 위해 Python에서 인기 있는 라이브러리인 Plotly 및 Bokeh를 살펴보았습니다. 대화형 시각화를 통해 데이터 포인트를 확대/축소, 패닝 및 마우스로 가리킬 수 있는 기능을 제공하여 정적 플롯을 넘어 데이터를 더 깊이 파고들 수 있습니다. Python을 사용하면 데이터를 쉽게 이해하고 전달할 수 있는 아름답고 매력적인 대화형 시각화를 만들 수 있습니다.

반응형