python 利用matplotlib在3D空间中绘制平面的案例


Posted in Python onFebruary 06, 2021

图形:

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()

图形:

python 利用matplotlib在3D空间中绘制平面的案例

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()

图形:

python 利用matplotlib在3D空间中绘制平面的案例

软件信息:

python 利用matplotlib在3D空间中绘制平面的案例

补充:Python数据分析(Matplotlib)之3D图形

使用python绘制一个简单的三维图

我就废话不多说了,大家还是直接看代码吧~

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pylab as plt
import numpy as np
from matplotlib import cm
#使用3d关键字来进行指定图像的三维投影
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
"""numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
在指定的间隔内返回均匀间隔的数字。
meshgrid函数创建一个二维坐标网络,这将用于二维坐标网络,这将用于变量x和y的赋值
"""
u = np.linspace(-1,1,100)
x,y =np.meshgrid(u,u)
z = x**2 +y**2
#指定行和列的步幅,以及绘制的色彩表
ax.plot_surface(x,y,z,rstride=4,cstride=4,cmap=cm.YlGnBu_r)
plt.show()

python 利用matplotlib在3D空间中绘制平面的案例

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
python生成指定长度的随机数密码
Jan 23 Python
python求pi的方法
Oct 08 Python
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
举例讲解Python编程中对线程锁的使用
Jul 12 Python
python 链接和操作 memcache方法
Mar 04 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
容易被忽略的Python内置类型
Sep 03 Python
Python 循环读取数据内存不足的解决方案
May 25 Python
PyQt5通过信号实现MVC的示例
Feb 06 #Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 #Python
python 利用panda 实现列联表(交叉表)
Feb 06 #Python
jupyter 添加不同内核的操作
Feb 06 #Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 #Python
PyCharm常用配置和常用插件(小结)
Feb 06 #Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 #Python
You might like
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
加速XP搜索功能堪比vista
2007/03/22 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
javascript 模拟点击广告
2010/01/02 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
Javascript中神奇的this
2016/01/20 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
在vscode中配置python环境过程解析
2019/09/28 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
python实现交并比IOU教程
2020/04/16 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
门卫岗位职责
2013/11/15 职场文书
小学教师节活动方案
2014/01/31 职场文书
入党自我评价范文
2014/02/02 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
如何写好建议书
2014/03/13 职场文书
同学会主持词
2014/03/18 职场文书
《故乡》教学反思
2014/04/10 职场文书
企业法人代表任命书
2014/06/06 职场文书
教师师德考核自我评价
2014/09/13 职场文书
领导干部群众路线剖析材料
2014/10/09 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
2019个人半年工作总结
2019/06/21 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android