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

Matplotlib 플롯 범례에 텍스트 레이블만 표시하는 방법

Matplotlib에서 플롯의 범례(legend)에 선이나 마커 없이 텍스트 레이블만 깔끔하게 표시하고 싶다면, legend() 메서드 호출 시 handlelength=0, handletextpad=0, fancybox=0 인자를 함께 사용하면 됩니다.

이렇게 하면 범례 앞에 붙는 색상 막대(handle)가 사라지고 레이블 텍스트만 보기 좋게 출력됩니다.

구현 단계

  • 그림 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.

  • numpy를 사용해 무작위 x, y 데이터 포인트를 생성합니다.

  • subplots() 메서드로 figure와 서브플롯 집합을 만듭니다.

  • plot() 메서드로 x, y 데이터를 그리면서 범례에 표시할 레이블을 'Zig-Zag'로 지정합니다.

  • legend() 메서드에 handlelength=0, handletextpad=0, fancybox=0 인자를 전달하여 레이블만 배치합니다.

  • show() 메서드를 사용해 figure를 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.random.rand(100)
y = np.random.rand(100)
fig, ax = plt.subplots()
ax.plot(x, y, label='Zig-Zag', c="red")
ax.legend(loc="upper right", handlelength=0, handletextpad=0, fancybox=True)
plt.show()

실행 결과

위 코드를 실행하면 빨간색 지그재그 선이 그려지고, 오른쪽 상단에는 색상 막대 없이 'Zig-Zag' 텍스트 레이블만 포함된 범례가 표시됩니다.

Matplotlib 플롯 범례에 텍스트 레이블만 표시하는 방법