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正常时间和unix时间戳相互转换的方法
Apr 23 Python
python中for语句简单遍历数据的方法
May 07 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
Python 多线程抓取图片效率对比
Feb 27 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
Python阶乘求和的代码详解
Feb 14 Python
python3中sys.argv的实例用法
Apr 24 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
python实现ROA算子边缘检测算法
Apr 05 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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的保留变量问题
2008/10/23 PHP
php邮件发送,php发送邮件的类
2011/03/24 PHP
PHP 文件系统详解
2012/09/13 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Flask数据库迁移简单介绍
2017/10/24 Python
pandas带有重复索引操作方法
2018/06/08 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
Python判断有效的数独算法示例
2019/02/23 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
务工证明怎么写
2015/06/18 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书