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()
复制代码

图形:

 

软件信息:

 

 

 

 

 

posted @   赏尔  阅读(17439)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示