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

Python과 Matplotlib로 점 집합의 중심 좌표 구하기

점 집합의 중심(center)을 구하는 가장 기본적인 방법은 산술 평균을 이용하는 것입니다. x, y 데이터 포인트가 담긴 리스트의 모든 요소를 더한 뒤 리스트의 길이로 나누면, 그 결과값이 해당 축에서의 중심 좌표가 됩니다. Python의 Matplotlib 라이브러리를 활용하면 이 중심점을 손쉽게 계산하고 시각화할 수 있습니다.

구현 단계

  • x축과 y축에 사용할 두 개의 데이터 포인트 리스트를 준비합니다.

  • plot() 메서드를 사용해 x, y 데이터 포인트를 그래프에 표시합니다.

  • sum()과 len() 함수를 활용해 x, y 데이터의 중심 좌표 튜플을 계산합니다.

  • 계산된 중심점을 그래프 위에 마커(marker)로 표시합니다.

  • annotate() 메서드로 중심점에 "center"라는 라벨 주석을 추가합니다.

  • show() 메서드를 호출해 최종 그래프를 화면에 출력합니다.

예제 코드

from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = [5, 1, 3, 2, 8]
y = [3, 6, 1, 0, 5]
plt.plot(x, y)
center = sum(x)/len(x), sum(y)/len(y)
plt.plot(center[0], center[1], marker='o')
plt.annotate(
    "center",
    xy=center, xytext=(-20, 20),
    textcoords='offset points', ha='right', va='bottom',
    bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
    arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0'))
plt.show()

실행 결과

Python과 Matplotlib로 점 집합의 중심 좌표 구하기

위 코드를 실행하면 5개의 데이터 포인트를 연결한 선 그래프와 함께, 노란색 배경의 "center" 라벨이 붙은 중심점이 표시됩니다. 이 예제에서 x 좌표의 중심은 (5+1+3+2+8)/5 = 3.8, y 좌표의 중심은 (3+6+1+0+5)/5 = 3.0입니다.

추가 팁

단순 평균 계산 외에도 NumPy의 np.mean() 함수를 활용하면 더 간결하게 처리할 수 있습니다. 특히 다차원 데이터의 경우 np.mean(points, axis=0)처럼 축(axis)을 지정하면 여러 좌표의 중심을 한 번에 계산할 수 있어 대량의 데이터를 다룰 때 매우 유용합니다.