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

Matplotlib로 축과 그리드 없이 3D 산점도 그리는 방법

Matplotlib에서 축이나 그리드가 보이지 않는 3D 플롯 위에 산점도(scatter plot)를 그리려면 scatter() 메서드를 사용하고, axis('off')를 호출하여 축을 숨기면 됩니다.

구현 단계

  • 그림 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • figure() 메서드를 사용해 새 그림을 생성하거나 기존 그림을 활성화합니다.
  • 서브플롯 배치 방식으로 3D 축(axis)을 추가합니다.
  • NumPy를 이용해 xs, ys, zs 데이터 포인트를 생성합니다.
  • scatter() 메서드로 산점도를 그립니다.
  • ax.axis('off') 메서드를 호출해 축과 눈금을 숨깁니다.
  • show() 메서드로 그림을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot(projection="3d")
xs = np.random.rand(100)
ys = np.random.rand(100)
zs = np.random.rand(100)
ax.scatter(xs, ys, zs, c=xs, cmap="copper")
ax.axis('off')
plt.show()

실행 결과

위 코드를 실행하면 축과 눈금이 모두 제거된 상태에서 3차원 공간에 무작위로 분포한 100개의 점이 'copper' 컬러맵으로 표시됩니다. x 좌표 값에 따라 점의 색상이 구리색 계열로 그라데이션되어 나타납니다.

Matplotlib로 축과 그리드 없이 3D 산점도 그리는 방법

추가 팁

배경까지 투명하게 만들고 싶다면 fig.patch.set_alpha(0)ax.patch.set_alpha(0)를 함께 사용할 수 있습니다. 또한 그리드만 숨기고 싶은 경우에는 ax.grid(False)를 호출하면 되며, 특정 축만 숨기고 싶다면 ax.set_axis_off() 대신 개별 축의 spine과 tick을 조절하는 방법도 활용 가능합니다.