본문 바로가기
Programming

Plotly로 막대 그래프 그리기와 색상 변경하기

by 느리게 걷는 즐거움 2024. 3. 15.
반응형

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`를 이용했습니다. 

위와 같이 막대그래프 각각이 서로 다른 색상으로 그려진 것을 확인할 수 있습니다.

반응형