pbj0812의 코딩 일기

[PYTHON] pandas-bokeh 라이브러리 써보기 본문

ComputerLanguage_Program/PYTHON

[PYTHON] pandas-bokeh 라이브러리 써보기

pbj0812 2021. 7. 16. 02:05

해당 포스팅은 pandas-bokeh의 README.md(링크) 파일 중 일부를 변형 혹은 차용하여 만든 글로 원본을 보시면 더욱 많고 정확한 정보를 얻으실 수 있습니다.

0. 목표 

 - pandas-bokeh 라이브러리 써보기

1. 실습(jupyter notebook 에서 실습)

 1) 설치

!pip install pandas-bokeh

 2) library 호출

import pandas as pd
import pandas_bokeh

 3) 데이터 프레임 생성

  - 0부터 999 까지 생성

df = pd.DataFrame({'A' : [i for i in range(1000)]})

 4) line plot 생성

  - html 창이 새롭게 열리며 아래와 같이 그래프를 그려줌

df.plot_bokeh(kind="line")

  - 이렇게 써도 됨

df.plot_bokeh.line()

 5) hover(마우스 올릴 때) 시각적 효과 변경

  - <img> ~</img> 부분은 이미지 관련 내용

  - 마지막의 @{A} 부분은 해당하는 값을 가져옴

df.plot_bokeh.line(
 hovertool_string=r"""<img
                        src='https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/170px-Apple_logo_black.svg.png' 
                        height="42" alt="@imgs" width="42"
                        style="float: left; margin: 0px 15px 15px 0px;"
                        border="2"></img> Apple 
                        <h4> Stock Price: </h4> @{A}"""   
)

 6) rangetool 옵션을 사용하면 아래 박스를 드래그하여 원하는 구간의 데이터 확인 가능

df.plot_bokeh(rangetool=True)

 7) map 사용

  - 아래 데이터를 이용해 지도 그림 생성

df_mapplot = pd.read_csv(r"https://raw.githubusercontent.com/PatrikHlobil/Pandas-Bokeh/master/docs/Testdata/populated%20places/populated_places.csv")
df_mapplot["size"] = df_mapplot["pop_max"] / 1000000
df_mapplot.plot_bokeh.map(
    x="longitude",
    y="latitude",
    hovertool_string="""<h2> @{name} </h2> 
                        <h3> Population: @{pop_max} </h3>""",
    tile_provider="STAMEN_TERRAIN_RETINA",
    size="size", 
    figsize=(900, 600),
    title="World cities with more than 1.000.000 inhabitants")

  - x, y 만 지정해주면 아래처럼 그려짐.

df_mapplot = pd.read_csv(r"https://raw.githubusercontent.com/PatrikHlobil/Pandas-Bokeh/master/docs/Testdata/populated%20places/populated_places.csv")
df_mapplot["size"] = df_mapplot["pop_max"] / 1000000
df_mapplot.plot_bokeh.map(
    x="longitude",
    y="latitude"
)

 8) 중첩 파이 그림

  - x 축만 설정시

df_pie = pd.read_csv(r"https://raw.githubusercontent.com/PatrikHlobil/Pandas-Bokeh/master/docs/Testdata/Bundestagswahl/Bundestagswahl.csv")

df_pie.plot_bokeh.pie(x="Partei")

  - y 축 추가시 

df_pie.plot_bokeh.pie(x="Partei", y='2017')

2. 참고

 - PatrikHlobil/Pandas-Bokeh

 

Comments