首先绘制一个三维曲面
使用matplotlib绘制曲面步骤:
-
导入
matplotlib.pyplot
模块,并取别名为plt
。 -
从
matplotlib.cm
模块导入cm
。 -
导入
numpy
并取别名为np
。 -
导入
mpl_toolkits.mplot3d.axes3d
模块中的get_test_data
函数。 -
创建一个图形对象
fig
,设置尺寸为 12x12 英寸。 -
添加一个子图
ax
,使用投影方式为 3D。 -
定义 X 轴的范围为 -5 到 5,步长为 0.25;定义 Y 轴的范围为 -5 到 5,步长为 0.25。通过调用
meshgrid
函数生成网格。 -
计算 R 的值,即 R = sqrt(X^2 + Y^2)。
-
计算 Z 的值,即 Z = sin(R)。
-
使用
plot_surface
方法在三维坐标系上绘制一个三维曲面图,传入 X、Y、Z 数据以及其他参数。 -
设置 Z 轴的取值范围为 -1.01 到 1.01。
-
使用
colorbar
方法添加一个颜色图例,shrink 参数控制图例尺寸,aspect 参数控制图例宽高比。
代码如下:
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from mpl_toolkits.mplot3d.axes3d import get_test_data
fig = plt.figure(figsize=(12,12))
ax = fig.add_subplot(1, 1, 1, projection='3d')
# plot a 3D surface
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
fig.colorbar(surf, shrink=0.5, aspect=10)
代码运行结果
调整z轴位置到左侧
ax1.zaxis._axinfo['juggled'] = (1,2,0)
运行结果
完成坐标轴的移动