Matplotlib练习9:3D图

建三维轴

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
plt.show()

效果图

在这里插入图片描述

建三维图

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

# 创建figure
fig = plt.figure()
# 将fig填入Axes3D
ax = Axes3D(fig)
# x轴生成-4~4的值,单位长度0.25
x = np.arange(-4, 4, 0.25)
y = np.arange(-4, 4, 0.25)
# 将x,y值填入网格
X, Y = np.meshgrid(x, y)
# 设置z轴数据赋给R
R = np.sqrt(X**2 + Y**2)
# 将R做正弦运算后赋给Z轴
Z = np.sin(R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
plt.show()

效果图

改变rstride和cstride的值

ax.plot_surface(X, Y, Z, rstride=3, cstride=3, cmap=plt.get_cmap('rainbow'))

效果图

将三维图映射到底部

# zdir映射方向z,offset=-2映射到z=-2的位置
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap='rainbow')
# 设置z轴范围
ax.set_zlim(-2, 2)

效果图

在这里插入图片描述

File->Settings->Python Scientific ->show plots in tool window 去掉勾选即可打开以下窗口,在以下窗口中可以旋转3D图


完整代码

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

# 创建figure
fig = plt.figure()
# 将fig填入Axes3D
ax = Axes3D(fig)
# x轴生成-4~4的值,单位长度0.25
x = np.arange(-4, 4, 0.25)
y = np.arange(-4, 4, 0.25)
# 将x,y值填入网格
X, Y = np.meshgrid(x, y)
# 设置z轴数据赋给R
R = np.sqrt(X**2 + Y**2)
# 将R做正弦运算后赋给Z轴
Z = np.sin(R)

ax.plot_surface(X, Y, Z, rstride=3, cstride=3, cmap=plt.get_cmap('rainbow'))
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap='rainbow')
ax.set_zlim(-2, 2)
plt.show()

猜你喜欢

转载自blog.csdn.net/weixin_48524215/article/details/111823231