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

Matplotlib 테이블의 투명도/불투명도를 변경하는 방법


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()

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Matplotlib 테이블의 투명도/불투명도를 변경하는 방법

핵심 포인트

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