본문 바로가기

BLOG/데이터분석

[데이터분석] plotly : 데이터프레임을 이용하여 데이터 간의 변화를 비교하는 그래프 만들기

 

이전 글에서는 plotly 라이브러리로 리스트 또는 데이터프레임에 있는 데이터를 사용하여 간단하게 그래프를 그려보는 방법에 대해서 설명드렸는데요, 이번 글에서는 데이터프레임을 이용하여 다른 두 데이터 간의 변화를 비교하는 그래프를 그리는 방법에 대해서 설명드리겠습니다.

 

 

- plotly() : 데이터프레임 이용하여 두 데이터 간의 변화 비교하기

우선, 아래와 같은 데이터프레임(df)이 있다고 가정해보겠습니다.

 

	year	item	price
0	2018	coffee	2500
1	2018	tea	4000
2	2019	coffee	2500
3	2019	tea	4000
4	2020	coffee	3000
5	2020	tea	5000
6	2021	coffee	3500
7	2021	tea	5500

 

위 데이터를 보면 'year' 칼럼에 연도별로, 'item' 칼럼에서의 coffee와 tea의 'price' 데이터가 나열되어 있습니다. 이러한 데이터프레임 형식은 자주 볼 수 있는데요, 이 데이터프레임을 이용해서 연도별 coffee와 tea의 price 변화를 그래프로 나타내 보도록 하겠습니다.

 

한편, plotly() 함수를 사용하기 위해 plotly.express 라이브러리를 import 해야 하며, 코드를 아래와 같이 입력하면 됩니다.

 

import plotly.express as px
fig = px.line(df, x='year', y='price', color='item', height = 500  , width = 1000)
fig.update_xaxes(type='category')
fig.show()

 

또한 선 그래프를 그리기 위해 .line() 함수를 사용했는데요, 만약 막대그래프로 나타내고 싶다면 .bar() 로 변경해서 코드를 입력하면 됩니다. 한편, line() 함수 안에 데이터프레임, x축, y축에 입력할 칼럼, 항목을 구분하기 위해 color 를 color='item' 칼럼으로, 그리고 그래프의 높이넓이 값을 인자로 넣어주었습니다.

세 번째 줄 코드는 그리드를 설정해주는 코드로, x축 데이터의 간격에만 그리드를 맞춰주기 위해 type을 type='category'로 지정해주었습니다. 

마지막으로 .show() 함수를 입력하면 해당 그래프가 출력된답니다.

 

아래 그래프는 출력된 결과입니다.

 

출력된 그래프를 보면, 연도별 coffee와 tea의 price 변화를 확인할 수 있습니다.

 

 

반면, 아래 그래프는 위에서 설명한 .bar() 함수를 이용하여 나타낸 그래프인데요, bar() 함수는 기본값으로 쌓은 막대그래프로 출력됩니다. 나란히 출력되는 막대 그래프에 대해서는 다음에 설명드리도록 하겠습니다 :D