안녕하세요,
이번 포스팅에서는 파이썬 Bokeh 패키지를 이용하여 반응형 그래프를 시각화하는 방법을 살펴보겠습니다. 파이썬에는 Matplotlib, Seaborn 등 다양한 패키지가 있으나 Bokeh는 사용자가 직접 그래프를 확대하거나 데이터 포인트를 확인하는 등 반응형 그래프를 만들 수 있고 html 코드를 확인할 수 있다는 장점이 있습니다. 그리고 Bokeh 문서를 살펴보면 예제 코드도 많이 있어서 활용도가 높습니다.
Bokeh documentation
Bokeh is a Python library for creating interactive visualizations for modern web browsers. It helps you build beautiful graphics, ranging from simple plots to complex dashboards with streaming data...
docs.bokeh.org
이번 포스팅에서는 ChatGPT와 토론하며 만든 선 그래프 코드를 살펴보겠습니다. 가상의 데이터를 활용해서 시각화해보겠습니다. 우선 아래의 코드를 실행합니다.
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource, HoverTool
from bokeh.io import output_notebook
from bokeh.embed import file_html
from bokeh.resources import CDN
numpy를 이용하여 데이터셋을 만드는데 이번 포스팅에서는 간단하게 단변량 데이터셋을 만들겠습니다. 2000년부터 2020년까지 비율 자료입니다.
years = np.arange(2000, 2020)
rates = np.random.uniform(80, 100, size=len(years))
data = {'Year': years, 'Rates': rates}
df = pd.DataFrame(data)
print(df.head())
ColumnDataSource를 이용하여 시각화를 위한 기본정보를 넣어줍니다. x축, y축, label 정보를 포함하였습니다.
source = ColumnDataSource(data={
'x': df.Year,
'y': df.Rates,
'label': ['비율'] * len(years)
})
다음으로 Bokeh의 figure 함수를 사용하여 그래프의 width, height를 입력하고 x축, y축 라벨, title를 입력합니다. 그리고 title의 사이즈도 조정해줍니다.
p = figure(width=600, height=300, x_axis_label="연도", y_axis_label="%", title="대학원생 D군의 스도리")
p.title.text_font_size = '15pt'
line함수를 이용해서 x, y에 변수를 입력하셔야 되는데 이때 중요한 건 앞서 만든 source에 입력한 변수명을 입력하셔야 됩니다. 즉, 위에서 'x' : df.Year 라고 했기 때문에 x='x'를 입력해야 합니다.
p.line(x='x', y='y', color='firebrick', source=source)
마지막으로 bokeh의 핵심인 interactive 반응형을 활용하기 위하여 HoverTool를 추가합니다. 그래프 위에 커서를 가져다두면 해당 포인트의 정보를 확인할 수 있습니다. 연도와 값이 표시되도록 설정하였습니다.
hover = HoverTool(tooltips=[("Year", "@x"), ("Value", "@y{0.00}%")])
p.add_tools(hover)
output_notebook()을 사용하시면 아래와 같이 코랩이나 주피터 노트북에 바로 결과물이 출력되게 할 수 있습니다.
output_notebook()
show(p)
마지막으로 bokeh 패키지로 만든 그래프를 웹사이트에 임베딩 하는 방법을 살펴보겠습니다. 아래의 코드에서는 그래프 데이터를 저장한 곳만 변경하시면 되는데 p 대신 저장하신 이름을 넣으시면 됩니다. 그리고 html 출력 결과물 이름을 바꾸시고 싶으면 my_plot대신에 원하시는 파일명을 넣으시면 됩니다.
from bokeh.embed import file_html
from bokeh.resources import CDN
html = file_html(p, CDN, "my_plot")
with open("my_plot.html", "w") as f:
f.write(html)
위의 코드를 실행한후 코랩 파일 탭에 들어가면 my_plot.html이 저장된 것을 확인할 수 있습니다. 이를 더블클릭하면 아래의 그림과 같이 html코드를 확인할 수 있습니다.
최종 결과물입니다.
참고로 코랩에 구글 드라이브를 연결하는 방법은 아래의 포스팅을 참고하시면 됩니다.
[Python] 구글 코랩으로 구글 드라이브 데이터셋 불러오기
안녕하세요, 지난 포스팅에서 로컬 PC에 저장된 데이터셋을 불러오는 방법을 살펴보았습니다. https://paratussemper.tistory.com/42?category=1101590 구글 코랩에 대한 간략한 설명과 사용하는 방법은 아래의
paratussemper.tistory.com
이상으로 Bokeh 패키지를 활용하여 반응형 선 그래프를 시각화하는 방법을 살펴보았습니다.
감사합니다!
[PYTHON] 워드클라우드 만들기 기초 (사이트 추천, 영어문장) (0) | 2023.04.26 |
---|---|
[Python] 구글 코랩으로 구글 드라이브 데이터셋 불러오기 (1) | 2023.04.20 |
[Python] 구글 코랩에 로컬PC 데이터 불러오기 (0) | 2023.04.19 |
[Python] 데이터 사이언스의 시작, 구글 코랩 추천 (0) | 2023.04.14 |
댓글 영역