Plotly로 막대 그래프 그리기와 색상 변경하기
Plotly는 파이썬에서 인터랙티브한 시각화를 할 수 있는 강력한 라이브러리입니다. 이번 글에서는 Plotly를 사용하여 막대 그래프를 그리고, Seaborn의 color_palette 함수를 사용하여 각 막대의 색상을 지정하는 방법을 알아보겠습니다.
필요한 라이브러리 설치하기
pip install plotly
# !pip install plotly
커멘드 창에서 위의 pip명령을 사용해서 plotly를 설치합니다. 주피터노트북이나 코랩을 사용하고 있다면 주석처리된 명령을 사용합니다. `!`를 통해서 코랩에서 라이브러리를 설치할 수 있습니다.
막대그래프와 색상 변경하기
Plotly를 이용해서 막대그래프를 생성하고 plotly.color.quantative를 이용해서 막대그래프의 색을 변경합니다. plotly.colors.qualitative.Plotly는 Plotly에서 제공하는 퀄리티티(qualitative) 색상 팔레트입니다. 이 팔레트는 카테고리형 데이터를 시각화할 때 사용하기 좋은 다양한 색상을 제공합니다.
import pandas as pd
import plotly.express as px
# DataFrame 생성
df = pd.DataFrame({'Category': ['A', 'B', 'C', 'D'],
'Value': [20, 35, 30, 15]})
# 막대 그래프 그리기
fig = px.bar(df, x='Category', y='Value', color='Category', color_discrete_sequence=px.colors.qualitative.Plotly)
# 그래프 보여주기
fig.show()
코드 설명
데이터 프레임을 생성하고 plotly express를 이용해서 막대그래프를 생성합니다. x축과 y축 데이터를 지정하기 위해서 데이터프레임의 이름인 'Category'와 'Value' 를 전달합니다.
fig = px.bar(df, x='Category', y='Value', color='Category', color_discrete_sequence=px.colors.qualitative.Plotly)
막대그래프의 색을 정하는 값으로 'Category'를 지정했습니다. 따라서 `Category`값이 다르면 다른 색을 갖게됩니다. `color_discrete_sequence`는 Plotly Express에서 사용되는 막대 그래프와 같은 플롯 유형에서 각 범주형 값에 할당된 색상을 지정하는 데 사용되는 매개변수입니다.
만약 Plotly Express 대신 `plotly.graph_objs`를 사용한다면 아래의 코드를 이용할 수 있습니다.
import plotly.graph_objs as go
# 데이터 생성
categories = ['A', 'B', 'C', 'D']
values = [20, 35, 30, 15]
# 색상 팔레트 설정
colors = px.colors.qualitative.Plotly
# 그래프 데이터 생성
data = [
go.Bar(
x=categories,
y=values,
marker=dict(
color=colors
)
)
]
# 레이아웃 설정
layout = go.Layout(
title='막대 그래프',
xaxis=dict(title='카테고리'),
yaxis=dict(title='값')
)
# 그래프 생성
fig = go.Figure(data=data, layout=layout)
fig.show()
go.Bar()로 막대그래프를 그릴때는 색상 정보를 `marker`에 딕셔너리 형태로 데이터를 전달합니다. 전달하는 색상 정보는 `px.colors.qualitative.Plotly`를 이용했습니다.
위와 같이 막대그래프 각각이 서로 다른 색상으로 그려진 것을 확인할 수 있습니다.
'Programming' 카테고리의 다른 글
REST API(Representational State Transfer API) (1) | 2024.03.17 |
---|---|
MongoDB 사용법 (SQL과 비교) (2) | 2024.03.16 |
정보관리는 Obsidian으로 (0) | 2024.03.13 |
우분투와 윈도우 운영체제 사이의 파일 공유 (1) | 2024.03.08 |
[Django] HTTPS 인증 (0) | 2022.12.06 |