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

Matplotlib 표(테이블)에서 열의 배경색을 설정하는 방법

Matplotlib에서 표(table)를 그릴 때 특정 열이나 셀의 배경색을 지정하고 싶다면 ax.table() 함수의 cellColours 파라미터를 활용하면 됩니다. 아래 단계별로 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 자동으로 조정합니다.

  • 표의 열 이름을 담은 튜플(tuple)을 생성합니다.

  • 각 행의 데이터를 담고 있는 리스트의 리스트, 즉 레코드 목록을 만듭니다.

  • 각 셀에 적용할 색상 정보를 담은 리스트의 리스트를 준비합니다.

  • plt.subplots()로 figure와 axes 객체를 생성합니다.

  • ax.table() 메서드를 사용해 axes에 표를 추가하며, 이때 cellColours 인자에 색상 리스트를 전달합니다.

  • ax.axis('off')로 축(axis)을 숨깁니다.

  • plt.show() 메서드로 결과 그림을 화면에 출력합니다.

예제 코드

import matplotlib.pyplot as plt

# 그림 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 열 이름 정의
columns = ('name', 'age', 'marks', 'salary')

# 각 행의 데이터 (레코드)
cell_text = [["John", "23", "98", "234"], ["James", "24", "90", "239"]]

# 각 셀의 배경색
colors = [["red", "yellow", "blue", "green"], ["blue", "green", "yellow", "red"]]

fig, ax = plt.subplots()

# 표 생성 - cellColours로 셀 배경색 지정
the_table = ax.table(cellText=cell_text, cellColours=colors,
                     colLabels=columns, loc='center')

# 축 숨기기
ax.axis('off')

plt.show()

실행 결과

위 코드를 실행하면 이름, 나이, 점수, 급여 네 개의 열로 구성된 표가 출력되며, 각 셀이 지정된 색상(빨강, 노랑, 파랑, 초록)으로 채워진 것을 확인할 수 있습니다.

참고 사항

cellColours에 전달되는 색상 리스트는 cellText와 동일한 2차원 구조를 가져야 하며, 색상은 색상명 문자열뿐만 아니라 HEX 코드(예: '#FF5733')나 RGB 튜플 형태로도 지정할 수 있습니다. 또한 열 라벨(colLabels)의 배경색을 별도로 변경하고 싶다면 반환된 표 객체에서 the_table.get_celld()를 통해 개별 셀에 접근해 set_facecolor() 메서드를 사용하는 방법도 있습니다.