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

Matplotlib 범례 마커 크기와 알파(투명도) 설정 방법


Matplotlib에서 범례(legend)에 표시되는 마커의 크기와 투명도(alpha)를 조절하는 방법을 단계별로 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • 샘플 데이터 개수를 저장할 변수 N을 초기화합니다.
  • marker="*" 옵션을 사용하여 x, y 데이터 포인트를 플롯합니다.
  • 그래프에 범례를 배치합니다.
  • 범례 핸들에서 마커 객체를 가져온 뒤, 마커 크기(size)와 알파 값(alpha)을 설정합니다.
  • show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

N = 10

x = np.random.rand(N)
y = np.random.rand(N)

line, = plt.plot(x, y, marker='*', markersize=20, markeredgecolor='black',
    alpha=0.4, ls='none', label='Random Data')

legend = plt.legend(loc='upper right')
legend.legendHandles[0]._legmarker.set_markersize(15)
legend.legendHandles[0]._legmarker.set_alpha(1)

plt.show()

코드 설명

그래프에는 마커 크기 20, 투명도 0.4인 별(*) 모양 마커가 사용되었습니다. 반면 legendHandles[0]은 범례의 첫 번째 항목 핸들을 가리키며, 내부 속성인 _legmarker를 통해 실제 마커 객체에 접근할 수 있습니다. 이어서 set_markersize()로 마커 크기를 15로 줄이고, set_alpha()로 투명도를 1로 설정하여 범례 안의 마커만 불투명하고 작게 표시됩니다.

출력 결과

위 코드를 실행하면 다음과 같은 그래프가 생성됩니다. 그래프 위의 마커는 반투명하지만, 오른쪽 위 범례 안의 마커는 크기 15에 완전히 불투명한 상태(alpha=1)로 나타납니다.

Matplotlib 범례 마커 크기와 알파(투명도) 설정 방법

참고: 더 간단한 대안

범례를 생성하는 시점에 markerscale 매개변수를 활용하면 별도의 후처리 없이 범례 마커 크기를 한 번에 조절할 수 있습니다. 예를 들어 원본 마커 크기가 20일 때 plt.legend(loc='upper right', markerscale=0.75)로 지정하면 범례 마커는 15 크기로 표시됩니다.