Plotly
- 인터랙티브 그래프 생성
- dict 형식으로 명령어 작성
- JSON 데이터 형식으로 저장
- 다양한 방식으로 Export 가능
- https://plotly.com/python/basic-charts/
Basic
Plotly's
plotly.com
1. 환경설정 : 파이썬에서 실행시킬때
!pip install --upgrade plotly # 런타임 재실행하기
import plotly.io as pio # Plotly input output
import plotly.express as px # 빠르게 그리는 방법
import plotly.graph_objects as go # 디테일한 설정
import plotly.figure_factory as ff # 템플릿 불러오기
from plotly.subplots import make_subplots # subplot 만들기
from plotly.validators.scatter.marker import SymbolValidator # Symbol 꾸미기에 사용됨
import numpy as np
import pandas as pd
from urllib.request import urlopen
import json
2. Plotly로 그래프 그리기
- fig객체는 기본적으로 Jason 형식으로 데이터를 그린다.
- 파이썬에서 Plotly로 그림을 그리는 방법은 3가지가 있다. (Dict/ Express /Graph_object)
① Dict 형식으로 그리는 방법
- 섬세한 그래프를 그리기에 복잡하여 거의 쓰이지 않는다.
fig = dict({
"data": [{"type": "bar",
'x': [1, 2, 3],
'y': [1, 3, 2]}],
"layout": {"title": {"text": "Dict형식으로 그리는 방법"}}
})
pio.show(fig)
② Express를 통해서 그리는 방법
- px를 통해 템플릿으로 그래프를 빠르게 그리기 가능
tips = px.data.tips()
fig1 = px.scatter(tips, # 데이터명(데이터프레임 형식)
x='tip', # x축에 들어갈 컬럼
y='total_bill', # y축에 들어갈 컬럼
color='sex', # 색상 구분 기준이 될 컬럼명 (seaborn의 hue와 같은 역할)
marginal_x = 'box', # scatterplot의 옵션 중 하나인 인접 그래프의 스타일 지정 (히스토그램)
marginal_y = 'histogram',# scatterplot의 옵션 중 하나인 인접 그래프의 스타일 지정 (히스토그램)
trendline="ols", # x축과 y축으로 지정된 데이터에 대해서 회귀분석(ols로)
trendline_color_override="grey", # trendline 색상 지정
hover_name='day', # 팝업 데이터 최상단에 데이터프레임 컬럼명
hover_data=['day', 'size'], # 참고할 데이터 추가 - tips.columns로 설정하면 다 보여줌
title='Tips by Total Bill - Scatter Plot', # 그래프 타이틀 지정
width=800, # 그래프의 크기 조절
height=600);
fig1.show()
③ Graph_object를 통해서 그리는 방법
- Graph_objects의 약자인 go를 통해서 Figure객체를 선언하고 Figure내에 필요한 Data와 Layout등을 설정함
- 섬세한 커스터마이징이 가능
- 그래프를 겹쳐그릴 수 있음
- go.Figure
- data : 데이터에 관한 정보
- layout : 제목, 폰트, 축, 범례 등 레이아웃 설정 정보
- go.update_layout : fig에 레이아웃 추가 업데이트
- go.add_trace : fig에 시각요소 추가 삽입 (subplot, map, 추가 그래프 등)
- go.make_subplots : 다중 그래프 그리기
fig2 = go.Figure(
# data 파트는 데이터에 관한 정보를 지정
data=[go.Histogram(name ='Tips per Size', # 데이터 제목
x=tips['size'], # x축 값 해당 컬럼명
y=tips['tip'], # y축 값 해당 컬럼명
hoverlabel = dict(bgcolor = 'green'))], # 마우스를 올렸을 때 뜨는 정보창의 배경 설정
# layout 파트에서 그래프의 축, 범례 등 부가정보 기입.
layout=go.Layout(
title='Tips 데이터 분석', # 메인 타이틀 입력
xaxis=dict( # x축 설정
title = '팁금액과 방문인원수',
titlefont_size=20,
tickfont_size=10),
yaxis=dict( # y축 설정
title= '전체 금액',
titlefont_size=15,
tickfont_size=10),
bargroupgap=0.5, # 그래프 간의 거리 조절
autosize=True))
fig2.show()
'<플레이데이터>부트캠프의 기록 > 데이터시각화' 카테고리의 다른 글
데이터시각화_2 : Seaborn의 기본구조 (0) | 2022.07.24 |
---|---|
데이터시각화_1 : Matoplotlib (0) | 2022.07.23 |