Matplotlib에서 생성한 테이블의 투명도(알파 값)를 조절하면 배경과 자연스럽게 어우러지는 시각화 결과물을 만들 수 있습니다. 아래 단계를 따라 테이블 셀의 투명도/불투명도를 손쉽게 변경할 수 있습니다.
구현 단계
그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백을 조정합니다.
그림과 하나의 서브플롯을 생성합니다.
10×3 크기의 무작위 데이터셋을 만듭니다.
열 이름으로 구성된 튜플을 정의합니다.
axis('off')를 사용하여 축 눈금과 표시를 제거합니다.
데이터와 열 레이블을 사용하여 테이블을 생성합니다.
테이블의 각 셀을 반복(iterate)하면서 set_alpha() 메서드로 투명도를 설정합니다.
결과 그림을 화면에 표시하려면 show() 메서드를 사용합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, axs = plt.subplots(1, 1)
data = np.random.random((10, 3))
columns = ("Column I", "Column II", "Column III")
axs.axis('off')
the_table = axs.table(cellText=data, colLabels=columns, loc='center')
for k, cell in the_table._cells.items():
cell.set_edgecolor('black')
if k[0] == 0 or k[1] < 0:
cell.set_text_props(weight='bold', color='w')
cell.set_facecolor('red')
cell.set_alpha(0.5)
else:
cell.set_facecolor(['green', 'yellow'][k[0] % 2])
cell.set_alpha(0.5)
plt.show()
실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

핵심 포인트
테이블 객체의 내부 딕셔너리인 _cells에는 모든 셀이 저장되어 있습니다. 이 셀들을 순회하면서 set_alpha() 메서드에 0부터 1 사이의 값을 전달하면 됩니다. 값이 0에 가까울수록 투명해지고, 1에 가까울수록 불투명해집니다. 위 예제에서는 헤더 행은 빨간색 배경에 흰색 굵은 글씨로 강조하고, 데이터 행은 초록색과 노란색을 교차로 적용한 뒤 모든 셀에 알파 값 0.5를 지정하여 반투명 효과를 부여했습니다.