[Python] plotly 사용하기 (1) Line 그래프
앞선 포스팅에서 Plotly를 설치하는 방법에 대해서 알아보았다.
[Python] Plotly 설치
[Python] Plotly 설치 파이썬의 fullstack 웹 프레임워크인 reflex (https://reflex.dev/) 로 간단한 웹 프로젝트를 하게 되었다. 홈페이지의 갤러리에 가보면 reflex로 구현한 샘플 웹페이지들을 확인 할 수 있다
heywantodo.tistory.com
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 |