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、Javascript中的闭包比较
Feb 04 Python
深入浅析Python字符编码
Nov 12 Python
python3库numpy数组属性的查看方法
Apr 17 Python
对numpy中向量式三目运算符详解
Oct 31 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
python中怎么表示空值
Jun 19 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 05 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
在smarty中调用php内置函数的方法
2013/02/07 PHP
php实现的用户查询类实例
2015/06/18 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
javascript定义函数的方法
2010/12/06 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
React简单介绍
2017/05/24 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
python中split方法用法分析
2015/04/17 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python实现字典嵌套列表取值
2019/12/16 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
应届生法律求职信
2013/10/22 职场文书
收银员岗位职责
2014/02/07 职场文书
质量保证书范本
2014/04/29 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
家庭贫困证明
2015/06/16 职场文书