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() 메서드를 사용하는 방법도 있습니다.