Home Plotly 맛보기 인터랙티브 시각화 도구
Post
Cancel

Plotly 맛보기 인터랙티브 시각화 도구

Plotly

Plotly는 파이썬의 대표적인 인터랙티브 시각화 도구로, 사용해본 시각화 도구 중에서는 가장 마음에 들었다.
정적인 그래프보다는 동적으로 움직이는 그래프를 사용하는게 만드는 재미도 있고 이용하는 재미도 있었다.
plotly로 그린 그래프를 깃허브 페이지에서 사용하려면 별도의 커스텀이 필요한거 같은데, 이는 나중에 따로 정리할 예정이다.
ipynb에서 plotly로 그린 그래프는 마크다운으로 변경했을 때, 변환자체가 안되는 문제가 있어 조금 찾아볼 필요가 있는거 같다.

앞으로 시각화 툴을 사용할때는 plotly를 가장 많이 사용할꺼 같아서, 공식문서를 보고 전체적으로 정리할 예정이다.
일단은 간단하게 당장 사용해야 할 일이 있어, 기본적이 사용법만 맛보기 느낌으로 정리했다.

1
import plotly.express as px

Plotly 예제 - 금융 데이터 시각화

1
df = px.data.stocks()
1
df.head()
dateGOOGAAPLAMZNFBNFLXMSFT
02018-01-011.0000001.0000001.0000001.0000001.0000001.000000
12018-01-081.0181721.0119431.0618810.9599681.0535261.015988
22018-01-151.0320081.0197711.0532400.9702431.0498601.020524
32018-01-221.0667830.9800571.1406761.0168581.3076811.066561
42018-01-291.0087730.9171431.1633741.0183571.2735371.040708

일별 수익률 선그래프 그리기

선 그래프는 px.line을 사용한다
px.line(data, x=, y=, title=)이 가장 기본적인 형태인거 같다

1
px.line(df, x="date", y="GOOG", title="구글 주가")

일별 수익률 막대그래프 그리기

막대 그래프는 px.bar을 사용한다.
df의 date 컬럼을 인덱스로 변경하고, 첫 데이터를 0으로 만들어 기준점을 만들어 그래프를 그렸다

1
2
df_bar = df.set_index("date") - 1
df_bar.head()
GOOGAAPLAMZNFBNFLXMSFT
date
2018-01-010.0000000.0000000.0000000.0000000.0000000.000000
2018-01-080.0181720.0119430.061881-0.0400320.0535260.015988
2018-01-150.0320080.0197710.053240-0.0297570.0498600.020524
2018-01-220.066783-0.0199430.1406760.0168580.3076810.066561
2018-01-290.008773-0.0828570.1633740.0183570.2735370.040708
1
px.bar(df_bar)

서브플롯 그리기

facet_col 옵션을 이용해 서브플롯을 그릴수 있다.
facet_col 옵션에 구분할 컬럼의 이름을 넣고, facet_col_wrapfacet_row_wrap 옵션을 이용해 크기도 조절 가능하다.

1
2
df_bar.columns.name = "company"
df_bar.head()
companyGOOGAAPLAMZNFBNFLXMSFT
date
2018-01-010.0000000.0000000.0000000.0000000.0000000.000000
2018-01-080.0181720.0119430.061881-0.0400320.0535260.015988
2018-01-150.0320080.0197710.053240-0.0297570.0498600.020524
2018-01-220.066783-0.0199430.1406760.0168580.3076810.066561
2018-01-290.008773-0.0828570.1633740.0183570.2735370.040708
1
px.bar(df_bar, facet_col="company", facet_col_wrap= 2)

px.area를 이용하면 분포를 그릴 수 있다.

1
px.area(df_bar, facet_col="company", facet_col_wrap=2)

Range Slider

그래프에 .update_xaxes(rangeslider_visible=True)을 붙여주면 서브플롯 느낌으로 하단에 슬라이더가 생성된다.

1
px.line(df_bar, x=df_bar.index, y="GOOG", title="GOOG 주가").update_xaxes(rangeslider_visible=True)

Scatterplot

px.scatter_matrix로 그릴 수 있다.

1
px.scatter_matrix(df_bar)

분포 그리기

box

px.box로 그릴 수 있다.
points 옵션을 이용하면 모든 분포가 나오고, notched 옵션을 이용하면 박스의 형태가 분포 형태에 따라 변경된다.
color 옵션의 경우 범주형 데이터를 이용해 색을 구분할 수 있게 해준다.

하나의 데이터에 대해서만 그릴 경우, x에 값을 지정해줘서 사용 가능하다.

1
px.box(df_bar, color="company")
1
px.box(df_bar, points="all", notched=True, color="company")

violin

px.violin을 이용해 그릴 수 있고, 박스와 유사한 옵션들을 사용할 수 있다.

1
px.violin(df_bar, points="all", box=True, color="company")

strip

px.strip을 이용해 그릴 수 있다.

1
px.strip(df_bar, color="company")

histogram

px.histogram으로 그릴 수 있다.

1
px.histogram(df_bar, marginal="box", facet_col="company")
This post is licensed under CC BY 4.0 by the author.

22년 5월 3주차 주간 회고

깃허브 페이지에서 Plotly 그래프 출력하기

Comments powered by Disqus.