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中lambda()的用法
Nov 16 Python
快速了解python leveldb
Jan 18 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
django框架模板语言使用方法详解
Jul 18 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 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
网络资源
2006/10/09 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python 正则表达式参数替换实例详解
2020/01/17 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
会计学个人自荐信模板
2013/12/13 职场文书
施工资料员的岗位职责
2013/12/22 职场文书
总经理助理职责
2014/02/04 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
市场营销策划方案
2014/06/11 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP