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

파이썬 Matplotlib 플롯에 점 좌표 표시하기

개요

Matplotlib로 산점도나 선 그래프를 그릴 때, 각 데이터 포인트의 정확한 좌표 값을 함께 표시하면 그래프를 해석하는 데 큰 도움이 됩니다. 이 글에서는 파이썬 Matplotlib 플롯 위에 점의 좌표를 주석(annotation) 형태로 표시하는 방법을 단계별로 살펴보겠습니다.

구현 단계

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

  • 데이터 포인트 개수를 담을 변수 N을 초기화하고, NumPy를 사용해 x축과 y축 데이터를 생성합니다.

  • zip() 함수로 x와 y 데이터를 묶은 뒤 반복 처리하면서, annotate() 메서드로 각 점의 좌표를 플롯에 표시합니다.

  • show() 메서드를 호출하여 완성된 그림을 화면에 출력합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np

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

N = 5

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

plt.plot(x, y, 'r*')

for xy in zip(x, y):
    plt.annotate('(%.2f, %.2f)' % xy, xy=xy)

plt.show()

코드 설명

  • plt.rcParams: 그림 크기를 7.50 × 3.50 인치로 지정하고, figure.autolayout 옵션을 켜서 레이블이나 제목이 잘리지 않도록 여백을 자동 조절합니다.

  • np.random.rand(N): 0과 1 사이의 난수 5개씩을 생성해 x, y 좌표 배열을 만듭니다.

  • plt.plot(x, y, 'r*'): 빨간색 별표(*) 마커로 데이터 포인트를 그립니다.

  • zip(x, y): x와 y 값을 하나씩 짝지어 튜플 형태로 반환하며, 반복문 안에서 annotate()가 해당 위치(xy)에 소수점 둘째 자리까지의 좌표 문자열을 표시합니다.

실행 결과

위 코드를 실행하면 빨간색 별표 마커로 표현된 5개의 데이터 포인트와 함께, 각 점의 (x, y) 좌표가 소수점 두 자리까지 플롯 위에 표시된 그림이 출력됩니다.

파이썬 Matplotlib 플롯에 점 좌표 표시하기

마무리

이처럼 annotate() 메서드를 활용하면 간단한 반복문만으로 모든 데이터 포인트의 좌표를 시각적으로 확인할 수 있습니다. 데이터 분석 보고서나 시각화 자료에서 특정 값의 위치를 강조하고 싶을 때 유용하게 사용할 수 있으며, 필요에 따라 폰트 크기, 색상, 오프셋 등을 추가로 조정해 가독성을 높일 수 있습니다.