반응형
파이썬의 matplotlib.pyplot.plot_surface 함수: 3D 그래프 그리기!
데이터 시각화는 복잡한 정보를 한눈에 이해하게 해주는 강력한 도구입니다. 그중에서도 matplotlib 라이브러리는 그래픽 시각화를 위한 다양한 기능을 제공하고 있으며, plot_surface 함수는 3D 표면 그래프를 그릴 수 있는 멋진 도구입니다. 이번 포스팅에서는 plot_surface 함수를 활용하여 3D 그래프를 어떻게 그릴 수 있는지 알아보겠습니다.
matplotlib.pyplot.plot_surface 함수 소개
matplotlib.pyplot.plot_surface 함수는 X, Y, Z 좌표값에 따라 표면을 형성하는 3D 플롯을 생성합니다. 이 함수는 과학적 데이터, 수학적 함수 등을 시각적으로 표현할 때 유용합니다. 많은 데이터가 숨겨진 3D 패턴을 시각적으로 드러내는 데 큰 도움이 됩니다.
함수 시그니처
plot_surface(X, Y, Z, **kwargs)
매개변수:
- X: X 좌표값을 나타내는 배열입니다.
- Y: Y 좌표값을 나타내는 배열입니다.
- Z: 각 (X, Y) 쌍에 대한 Z 좌표값을 나타내는 배열입니다.
반환 값:
- 생성된 3D 표면 플롯 객체를 반환합니다.
사용 예제
기본 예제
다음은 plot_surface 함수를 사용하여 기본적인 3D 표면을 그리는 예제입니다. 수학적 함수 z = sin(sqrt(x^2 + y^2))을 사용해보겠습니다.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 데이터 생성
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 3D 서피스 플롯 생성
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
# 그래프 설정
ax.set_title('3D Surface Plot: z = sin(sqrt(x^2 + y^2))')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
plt.show()
다양한 색상 맵 사용하기
색상 맵을 변경하여 다양한 스타일의 3D 표면 그래프를 만들어 볼 수 있습니다. 다음 예제에서 plasma 색상 맵을 사용할 것입니다.
# 3D 서피스 플롯 생성 (다른 색상 맵)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='plasma')
# 그래프 설정
ax.set_title('3D Surface Plot with Plasma colormap')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
plt.show()
결론
plot_surface 함수는 데이터의 복잡한 관계를 시각적으로 쉽게 이해할 수 있도록 도와줍니다. 다양한 수학적 함수 및 데이터 세트를 사용하여 더 많은 패턴과 통찰력을 찾을 수 있습니다. 데이터 분석의 세계에서 시각화는 중요한 역할을 하므로 차근차근 시도해보세요!
- plot_surface 함수를 활용하여 데이터의 숨겨진 패턴을 발견하세요!
- 다양한 색상 맵과 기능을 활용해보면서 나만의 시각화 스타일을 만들어 보세요!
반응형
'Python > matplotlib' 카테고리의 다른 글
matplotlib AttributeError: 'Figure' object has no attribute 'add_subplot' 오류 해결하기 (1) | 2024.11.01 |
---|---|
matplotlib ValueError: shapes (nx,4) and (m,) not aligned 해결하기 (1) | 2024.11.01 |
파이썬 matplotlib.pyplot.scatter3D 함수 활용하기 (0) | 2024.11.01 |
파이썬 matplotlib.pyplot.axvspan 함수 활용하기 (0) | 2024.11.01 |
파이썬 matplotlib.pyplot.axhspan 함수 활용하기 (0) | 2024.11.01 |