3차원 그래프를 그리기 위한 라이브러리 임포트
-> Axes3D 라는 모듈을 임포트해야 3차원 그래프를 그릴 수 있다.
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
좌표 생성
-> np.meshgird 라는 함수를 통해 좌표로 쓸 2차원 배열을 만든다.
# 좌표 생성
x1 = np.linspace(-5, 5, 30)
y1 = np.linspace(-5, 5, 30)
x1, y1 = np.meshgrid(x1, y1)
z1 = x1**2 + y1**2
figure 생성 및 그래프 그리기
-> 6개의 그래프를 그리기 위해 2행3열의 모양을 잡고,
거기에 맞게 figsize도 (15, 10)로 설정했다.
fig = plt.figure(figsize=(15, 10))
ax1 = fig.add_subplot(231, projection='3d') # 2행3열에 첫번째
ax1.plot_wireframe(x1, y1, z1)
그래프2
-> plot_surface를 이용한 그래프
ax2 = fig.add_subplot(322, projection='3d') # 2행3열에 두번째
ax2.plot_surface(x1, y1, z1)
그래프3
-> plot_surface의 cmap옵션 사용
ax3 = fig.add_subplot(323, projection='3d')
ax3.plot_surface(x1, y1, z1, cmap='summer')
그래프4
-> plot_surface의 rstride, cstride 를 키우면 어떻게 될까?
ax4 = fig.add_subplot(324, projection='3d')
ax4.plot_surface(x1, y1, z1, rstride=2, cstride=2, cmap='summer')
그래프5
-> 등고선도 그릴 수 있더라..
ax5 = fig.add_subplot(325, projection='3d')
ax5.contourf(x1, y1, z1, zdir='z', offset=0)
# zdir: 등고선 높이의 기준이 될 축, offset: 등고선을 어디에 내릴지
plt.show()
< 모든 코드 >
# 라이브러리 임포트
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# 좌표생성
x1 = np.linspace(-5, 5, 30)
y1 = np.linspace(-5, 5, 30)
x1, y1 = np.meshgrid(x1, y1)
z1 = x1**2 + y1**2
# figure 생성
fig = plt.figure(figsize=(15, 10))
# 그래프 그리기
ax1 = fig.add_subplot(231, projection='3d') # 2행3열에 첫번째
ax1.plot_wireframe(x1, y1, z1)
ax2 = fig.add_subplot(232, projection='3d') # 2행3열에 두번째
ax2.plot_surface(x1, y1, z1)
ax3 = fig.add_subplot(233, projection='3d')
ax3.plot_surface(x1, y1, z1, cmap='summer')
ax4 = fig.add_subplot(234, projection='3d')
ax4.plot_surface(x1, y1, z1, rstride=2, cstride=2, cmap='summer')
# 등고선
ax5 = fig.add_subplot(235, projection='3d')
ax5.contourf(x1, y1, z1, zdir='z', offset=0)
# zdir: 등고선 높이의 기준이 될 축, offset: 등고선의 위치
plt.show()