Python으로 그린 그래프 위에 각 점의 좌표를 직접 표시하면 데이터를 한눈에 파악하기가 훨씬 쉬워집니다. Matplotlib의 plt.text() 함수를 활용하면 몇 줄의 코드만으로 이를 간단하게 구현할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
- x축과 y축에 사용할 데이터 포인트 리스트를 생성합니다.
- 빨간색 별표(*) 마커 스타일로 x, y 데이터 포인트를 그립니다.
- 축 범위 등 필요한 축 속성을 설정합니다.
- zip() 함수로 x와 y 값을 짝지어 반복하면서 각 좌표 위치에 텍스트를 표시합니다.
예제 코드
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [7.50, 3.50]
plt.rcParams['figure.autolayout'] = True
x = [3, 1, 2, 5]
y = [5, 2, 4, 7]
plt.plot(x, y, 'r*')
plt.axis([0, 6, 0, 20])
for i, j in zip(x, y):
plt.text(i, j+0.5, '({}, {})'.format(i, j))
plt.show()
코드 설명
plt.rcParams를 사용해 그림 크기를 7.50 × 3.50인치로 지정하고, 자동 레이아웃 조절 기능을 활성화했습니다. 데이터 포인트는 'r*' 포맷 문자열을 통해 빨간색 별표 마커만 표시되도록 설정했습니다.
plt.axis([0, 6, 0, 20])은 x축 범위를 0~6, y축 범위를 0~20으로 고정해 그래프의 가독성을 높입니다. 마지막으로 zip()으로 x와 y를 하나씩 짝지어 반복하면서, 각 점보다 약간 위쪽(y + 0.5)에 '(x, y)' 형식의 좌표 텍스트를 출력합니다.
실행 결과
위 코드를 실행하면 빨간색 별표 마커로 표시된 네 개의 데이터 포인트 옆에 각각의 좌표 값이 함께 나타나는 그래프를 확인할 수 있습니다.
