[Python] plotly 사용하기 (1) Line 그래프
앞선 포스팅에서 Plotly를 설치하는 방법에 대해서 알아보았다.
Plotly 라이브러리를 이용해서 그래프를 그려보자
데이터는 plotly에서 제공하는 임의의 데이터를 사용 한다.
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
선 그래프 (Line)
선 그래프는 다음과 같이 나타낼 수 있다.
px.line(df, x축에 들 갈 column명, y축에 들어갈 column명)
예제 데이터는 Canada의 연도별 기대 수명이다.
데이터 프레임에 값을 넣어준 후 x축에 연도 y축에 기대수명을 넣어주면 그래프를 확인 할 수 있다.
df = px.data.gapminder().query("country=='Canada'")
fig = px.line(df, x="year", y="lifeExp", title="Life expectancy in Canada")
fig.show()
Mark
오세아니아 대륙의 기대수명을 나타내는데, 색깔(color)으로 나라를 구별할 수 있다.
또한 symbol 지정이 가능하다.
df = px.data.gapminder().query("continent=='Oceania'")
fig = px.line(df, x="year", y="lifeExp", color='country', symbol="country")
fig.show()
title 및 x, y 축 레이블 변경
다음은 오세아니아의 연도별 인구 변화를 나타내는 그래프다.
x축과 y축에 label 지정이 가능하며, 딕셔너리 형태로 지정한다.
그래프의 title을 지정할 수 있다.
높이(width)와 넓이(height)를 pixel 단위로 지정이 가능하다.
fig = px.line(df, x='year', y='pop', color='country',
labels={"year":"년도","pop":"총 인구수"},
title="오세아니아의 연도별 인구 변화",
width=500, height = 300
)
fig.show()
툴팁 데이터 추가
tooltip에는 기본적으로 함수에 입력된 값들이 표시된다. (x값, y값, color값 등)
옵션(hover_name, hover_data)을 선택하면 툴팁에 추가로 표시가 된다.
툴팁은 커스터마이징이 가능하다.
컬럼을 False로 세팅 시 툴팁에서 표시가 삭제되고, True로 세팅 시 디폴트 포맷팅으로 툴팁에 표시가 추가된다.
표시되는 형식 또한 포맷팅이 가능하다.
fig = px.line(df, x='year', y='pop', color='country',
hover_name = 'country',
hover_data={"pop":':.2f', #tool tip에 표시되는 데이터 포맷팅
"country":False, #tool tip에서 데이터 삭제
"continent":True, #tooltip 에 데이터 추가
"lifeExp":':.2f' #데이터 추가하고 포맷팅
}
)
fig.show()
Subplot 표시
query 함수를 통해서 데이터를 특정하여 가지고 오면 지정한 데이터에 대해서 subplot 표시가 가능하다.
아래 예제는 iso_alpha가 KOR로 동일한 우리나라와 북한의 연도별 인구 변화를 나타낸다.
df = px.data.gapminder().query("iso_alpha == 'KOR'")
fig = px.line(df, x='year', y='pop', color='country',
facet_row='country')
fig.show()
fecet_row를 사용하면 가로 방향으로 subplot이 표시되며
fecet_col을 사용하면 세로 방향으로 subplot이 표시된다.
시계열 데이터 다루기
먼저 데이터를 불러와준다, 해당 데이터는 6 tech 기업의 2018-2019 종가가 정리되어있다고 한다.
df = px.data.stocks()
df.head()
구글의 데이터를 시계열 그래프로 그려보자
fig = px.line(df, x='date', y='GOOG')
fig.show()
Range Slide 추가도 가능하다.
fig = px.line(df, x='date', y='GOOG')
fig.update_xaxes(rangeslider_visible=True)
fig.show()
참고
'👩💻 Develope > Python' 카테고리의 다른 글
[Pandas] Query (0) | 2023.11.23 |
---|---|
[Python] 파이썬에서 다른 py 파일의 변수/함수 호출 (1) | 2023.11.22 |
[Pandas] Group by (0) | 2023.11.15 |
[Pandas] 데이터 프레임 특정 조건에 맞는 값 추출 (1) | 2023.11.14 |
[Python] Plotly 설치 (0) | 2023.11.10 |