Matplotlib에서 패치(patch)의 테두리색(edgecolor)과 채우기색(facecolor)에 각각 다른 불투명도(opacity)를 적용하려면 RGBA 색상 튜플을 활용하면 됩니다. 색상 튜플의 네 번째 요소(인덱스 3)가 해당 색상의 불투명도 값을 결정하며, 0(완전히 투명)부터 1(완전히 불투명) 사이의 값으로 지정할 수 있습니다.
구현 단계
- 그림 크기를 설정하고, 서브플롯 주변 및 사이의 여백을 자동으로 조정합니다.
- subplots() 메서드를 사용해 그림(figure)과 축(ax)을 생성합니다.
- 테두리색과 채우기색에 서로 다른 불투명도 값을 정의합니다.
- add_patch() 메서드로 사각형(Rectangle) 패치를 축에 추가합니다.
- show() 메서드를 호출하여 결과 그림을 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt, patches
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
figure, ax = plt.subplots()
edge_color_opacity = 1 # 0 < val < 1
tface_color_opacity = 0.75 # 0 < val < 1
ax.add_patch(patches.Rectangle((.25, .25), .50, .50,
edgecolor=(1, 0, 0, edge_color_opacity),
facecolor=(0, 1, 0, face_color_opacity),
linewidth=2))
plt.show()실행 결과
위 코드를 실행하면 빨간색 테두리는 완전히 불투명하고(불투명도 1), 초록색 내부는 반투명하게(불투명도 0.75) 렌더링된 사각형이 출력됩니다.
핵심 포인트
RGBA 형식의 색상 튜플 (R, G, B, A)에서 마지막 값 A가 알파(투명도) 채널입니다. 이 방식을 사용하면 하나의 패치 안에서도 테두리와 면의 투명도를 독립적으로 제어할 수 있어, 겹쳐진 그래프나 배경 위에 도형을 표시할 때 시각적 가독성을 높이는 데 유용합니다.