-import
from mpl_toolkits import mplot3d
- plot3d
# 3차원 시각화 구현
fig = plt.figure()
axe = plt.axes(projection='3d')
ax = plt.axes(projection='3d')
# Data for a three-dimensional line
zline = np.linspace(0, 15, 1000) # z값 0~15까지 1000조각 낸것
xline = np.sin(zline) # x 값은 z의 sin
yline = np.cos(zline) # y 값은 z의 cos
# 각 x, y, z의 매개변수를 넣어서 시각화
ax.plot3D(xline, yline, zline, 'gray')
plt.show()
- scatter3d
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens');
plt.show()
- 3차원 등고선 플롯
def f(x, y):
return np.sin(np.sqrt(x ** 2 + y ** 2))
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y) # x는 y의 값이 행으로 반복된 배열, y는 x의 값이 행으로 반복된 행렬
Z = f(X, Y)
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 50)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z');
- plot_wireframe()
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_wireframe(X, Y, Z, color='black')
ax.set_title('wireframe');
- plot_surface()
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z,cmap='viridis') # cmap은 색
ax.set_title('surface');
- 원뿔 그리기
r = np.linspace(0, 2, 100)
theta = np.linspace(0, 2 * np.pi, 100)
R, theta = np.meshgrid(r, theta)
x= R * np.cos(theta)
y= R * np.sin(theta)
z1= 4*R
z2= -4*R
ax = plt.axes(projection='3d')
ax.plot_surface(x, y, z1, rstride=1, cstride=1,
cmap='viridis', edgecolor='none');
ax.plot_surface(x, y, z2, rstride=1, cstride=1,
cmap='viridis', edgecolor='none');
- plot_trisurf()
theta = 2 * np.pi * np.random.random(1000)
r = 6 * np.random.random(1000)
x = np.ravel(r * np.sin(theta))
y = np.ravel(r * np.cos(theta))
z = f(x, y)
ax = plt.axes(projection='3d')
ax.plot_trisurf(x, y, z,
cmap='viridis', edgecolor='none')
참조코드
'Python' 카테고리의 다른 글
지도 시각화 (0) | 2024.12.04 |
---|---|
Plotly (0) | 2024.12.03 |
Word Cloud (0) | 2024.12.03 |
Seaborn (0) | 2024.12.02 |
Pandas_groupby (0) | 2024.12.02 |