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

Matplotlib scatter()로 3D 산점도에 범례 추가하는 방법

Matplotlib의 scatter() 또는 plot() 함수를 사용해 3D 산점도(3D scatterplot)에 범례를 추가하려면 다음 단계를 따르면 됩니다.

구현 단계

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

  • 샘플 데이터의 개수를 저장할 변수 N을 초기화합니다.

  • 난수를 이용해 x, y 데이터 포인트를 생성하고, 이를 조합하여 z1(곱셈)과 z2(덧셈) 데이터 리스트를 만듭니다.

  • projection='3d' 옵션을 지정하여 현재 figure에 3D 축의 서브플롯을 추가합니다.

  • plot() 메서드로 x, y, z1 데이터를 마커 * 형태로 그리고, 범례에 표시될 label을 지정합니다.

  • 같은 방식으로 x, y, z2 데이터를 마커 o 형태로 그리고 label을 지정합니다.

  • legend() 메서드를 호출해 figure에 범례를 배치합니다.

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

예제 코드

import matplotlib.pyplot as plt
import numpy as np

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

N = 100

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

z1 = [i*j for (i, j) in zip(x, y)]
z2 = [i+j for (i, j) in zip(x, y)]

axes = plt.subplot(111, projection='3d')

axes.plot(x, y, z1, "*", label="xy")
axes.plot(x, y, z2, "o", label="x+y")

plt.legend(loc="upper right")

plt.show()

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Matplotlib scatter()로 3D 산점도에 범례 추가하는 방법

핵심 포인트 정리

3D 산점도에 범례를 추가하는 핵심은 각 데이터 시리즈를 그릴 때 label 인자를 함께 지정하는 것입니다. 라벨이 설정된 상태에서 plt.legend()를 호출하면, loc 인자로 범례 위치(예: "upper right")를 자유롭게 조절할 수 있습니다. 이 방법은 scatter()뿐만 아니라 plot()으로 그린 3D 그래프에도 동일하게 적용되므로, 여러 데이터 세트를 한 화면에서 구분할 때 매우 유용합니다.