python 用 matplotlib 在 3D 空间中绘制平面 实例详解
图形:
0、import
import numpy as np
import matplotlib as mpl
from matplotlib import cm
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
1、水平和垂直平面
# 创建画布
fig = plt.figure(figsize=(12, 8),
facecolor='lightyellow'
)
# 创建 3D 坐标系
ax = fig.gca(fc='whitesmoke',
projection='3d'
)
# 二元函数定义域平面
x = np.linspace(0, 9, 9)
y = np.linspace(0, 9, 9)
X, Y = np.meshgrid(x, y)
# -------------------------------- 绘制 3D 图形 --------------------------------
# 平面 z=4.5 的部分
ax.plot_surface(X,
Y,
Z=X*0+4.5,
color='g',
alpha=0.6
)
# 平面 y=4.5 的部分
ax.plot_surface(X,
Y=X*0+4.5,
Z=Y,
color='y',
alpha=0.6
)
# 平面 x=4.5 的部分
ax.plot_surface(X=X*0+4.5,
Y=Y,
Z=X,
color='r',
alpha=0.6
)
# -------------------------------- --------------------------------
# 设置坐标轴标题和刻度
ax.set(xlabel='X',
ylabel='Y',
zlabel='Z',
xlim=(0, 9),
ylim=(0, 9),
zlim=(0, 9),
xticks=np.arange(0, 10, 2),
yticks=np.arange(0, 10, 1),
zticks=np.arange(0, 10, 1)
)
# 调整视角
ax.view_init(elev=15, # 仰角
azim=60 # 方位角
)
# 显示图形
plt.show()
图形:
2、斜平面
# 创建画布
fig = plt.figure(figsize=(12, 8),
facecolor='lightyellow'
)
# 创建 3D 坐标系
ax = fig.gca(fc='whitesmoke',
projection='3d'
)
# 二元函数定义域
x = np.linspace(0, 9, 9)
y = np.linspace(0, 9, 9)
X, Y = np.meshgrid(x, y)
# -------------------------------- 绘制 3D 图形 --------------------------------
# 平面 z=3 的部分
ax.plot_surface(X,
Y,
Z=X*0+3,
color='g'
)
# 平面 z=2y 的部分
ax.plot_surface(X,
Y=Y,
Z=Y*2,
color='y',
alpha=0.6
)
# 平面 z=-2y + 10 部分
ax.plot_surface(X=X,
Y=Y,
Z=-Y*2+10,
color='r',
alpha=0.7
)
# -------------------------------- --------------------------------
# 设置坐标轴标题和刻度
ax.set(xlabel='X',
ylabel='Y',
zlabel='Z',
xlim=(0, 9),
ylim=(0, 9),
zlim=(0, 9),
xticks=np.arange(0, 10, 2),
yticks=np.arange(0, 10, 1),
zticks=np.arange(0, 10, 1)
)
# 调整视角
ax.view_init(elev=15, # 仰角
azim=10 # 方位角
)
# 显示图形
plt.show()
图形:
软件信息:
非学无以广才,非志无以成学。