Python

[파이썬] plotly를 활용한 막대그래프 - plotly.express

weweGH 2024. 11. 7. 10:01
반응형

plotly.express 막대그래프
plotly.express 막대그래프


plotly를 활용한 막대그래프 - plotly.express


들어가며


plotly는 인터랙티브한 그래프를 그릴 수 있는 그래픽 패키지입니다. 기본적으로 모든 차트를 대화형으로 지원하여, 세부 정보 표시, 확대 등이 가능합니다. 이 글에서는 plotly를 활용한 막대그래프를 생성하고, 커스터마이징 하는 방법을 소개합니다.

예제로 활용할 데이터는 kaggle의 휴대폰 사용량에 관한 데이터 셋입니다. 아래 링크를 참고하세요.

 

Mobile Device Usage and User Behavior Dataset

Analyzing Mobile Usage Patterns and User Behavior Classification Across Devices

www.kaggle.com


먼저 필요한 패키지를 import하고 데이터를 불러온 후, 그래프를 생성하기 위해 groupby로 집계를 진행합니다. 생성한 summary_df는 사용자 클래스의 평균 앱 사용 시간입니다.

import pandas as pd
import plotly.express as px

df = pd.read_csv('user_behavior_dataset.csv')

summary_df = df.groupby(['User Behavior Class'])['App Usage Time (min/day)'].mean().reset_index()
summary_df['App Usage Time (min/day)'] = summary_df['App Usage Time (min/day)'].round(2)
summary_df.head()

summary_df
summary_df


  • 막대그래프
  • 막대그래프 - 라벨 추가
  • 막대그래프 - 제목 추가
  • 막대 그래프 - 색상 변경

막대그래프


기본 막대그래프를 생성하는 방법은 다음과 같습니다. 데이터프레임의 이름과 표현하고자 하는 변수명을 x와 y에 각각 설정하면 됩니다.

fig = px.bar(summary_df, 
             x='User Behavior Class', 
             y='App Usage Time (min/day)', 
            )

fig.show()


막대그래프 - 라벨 추가


막대그래프에 라벨을 추가하는 옵션은 text입니다. text에 표현하고자 하는 변수명을 설정합니다.

fig = px.bar(summary_df, 
             x='User Behavior Class', 
             y='App Usage Time (min/day)', 
             text='App Usage Time (min/day)',
            )

fig.show()


막대그래프 - 제목 추가


막대그래프에 제목을 추가하는 옵션은 title입니다. title에 해당 그래프의 제목을 설정합니다.

fig = px.bar(summary_df, 
             x='User Behavior Class', 
             y='App Usage Time (min/day)', 
             text='App Usage Time (min/day)',
             title="app usage time per user class",
            )

fig.show()


막대그래프 - 색상 변경


막대그래프의 색상을 변경하는 옵션은 color_discrete_sequence입니다. 원하는 색상의 이름이나 코드를 넣어 막대의 색상을 변경할 수 있습니다. 

fig = px.bar(summary_df, 
             x='User Behavior Class', 
             y='App Usage Time (min/day)', 
             text='App Usage Time (min/day)',  
             title="app usage time per user class",
             color_discrete_sequence=['green']
            )

fig.show()


 

반응형