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 相关文章推荐
python3实现ftp服务功能(客户端)
Mar 24 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
图解Python变量与赋值
Apr 03 Python
python re模块的高级用法详解
Jun 06 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
python爬虫 正则表达式解析
Sep 28 Python
python 消费 kafka 数据教程
Dec 21 Python
python中with用法讲解
Feb 07 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
twig模板常用语句实例小结
2016/02/04 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
vuejs如何配置less
2017/04/25 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
python脚本监控docker容器
2016/04/27 Python
利用Python开发实现简单的记事本
2016/11/15 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python读写csv文件方法详细总结
2019/07/05 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python实现二分查找算法
2020/09/18 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android