Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib 막대 그래프가 자동으로 다양한 색상을 순환하도록 설정하는 방법

데이터 시각화에서 각 막대가 서로 다른 색상으로 표현되면 가독성이 크게 향상됩니다. Matplotlib의 prop_cycle 기능을 활용하면 막대 그래프(bar plot)가 색상 목록을 자동으로 순환하며 적용하도록 설정할 수 있습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • 여러 색상을 순환할 수 있도록 자동 컬러 사이클러(cycler)를 설정합니다.
  • 막대 그래프를 그릴 데이터를 담은 Pandas 데이터프레임을 생성합니다.
  • plot() 메서드에 kind="bar" 옵션을 지정하여 막대 그래프를 그립니다.
  • 그래프를 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.rc('axes', prop_cycle=(plt.cycler('color', ['r', 'g', 'b', 'y'])))

df = pd.DataFrame(dict(name=["John", "Jacks", "James"], age=[23, 20, 26],
marks=[88, 90, 76], salary=[90, 89, 98]))

df.set_index('name').plot(kind='bar')

plt.show()

코드 설명

plt.cycler('color', ['r', 'g', 'b', 'y'])는 빨강, 초록, 파랑, 노랑 네 가지 색상을 순환하는 컬러 사이클러를 생성합니다. 이를 plt.rc('axes', prop_cycle=...)로 축(axes) 속성에 등록하면, 이후 그려지는 모든 플롯에서 지정한 색상들이 자동으로 순환됩니다.

예제에서는 이름(name)을 인덱스로 설정한 데이터프레임의 나이(age), 점수(marks), 급여(salary) 열이 각각 다른 색상의 막대로 표시됩니다.

실행 결과

위 코드를 실행하면 John, Jacks, James 세 사람의 데이터가 x축에 배치되고, age·marks·salary 항목이 각각 빨강, 초록, 파랑, 노랑 계열의 서로 다른 색상으로 구분되어 표시된 막대 그래프가 출력됩니다.