python 利用matplotlib在3D空间绘制二次抛物面的案例


Posted in Python onFebruary 06, 2021

图形预览:

python 利用matplotlib在3D空间绘制二次抛物面的案例

0、import

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

1、开口向上的抛物面

fig = plt.figure(figsize=(9,6),
         facecolor='khaki'
        )
ax = fig.gca(projection='3d')
# 二元函数定义域平面集
x = np.linspace(start=-3,
        stop=3,
        num=100
        )
y = np.linspace(start=-3,
        stop=3,
        num=100
        )
X, Y = np.meshgrid(x, y)  # 网格数据
Z = np.power(X, 2) + np.power(Y, 2)  # 二元函数 z = x**2 + y**2
# 绘图
surf = ax.plot_surface(X=X,
            Y=Y,
            Z=Z,
            rstride=2,  # row stride, 行跨度
            cstride=2,  # column stride, 列跨度 
            color='r',
            linewidth=0.5,
           )
# 调整视角
ax.view_init(elev=7,  # 仰角
       azim=30  # 方位角
      )
# 显示图形
plt.show()

图形:

python 利用matplotlib在3D空间绘制二次抛物面的案例

2、开口向下的抛物面

fig = plt.figure(figsize=(9,6),
         facecolor='khaki'
        )
ax = fig.gca(projection='3d')
# 二元函数定义域平面集
x = np.linspace(start=-3,
        stop=3,
        num=100
        )
y = np.linspace(start=-3,
        stop=3,
        num=100
        )
X, Y = np.meshgrid(x, y)  # 网格数据
Z = np.power(X, 2) + np.power(Y, 2)  # 二元函数 z = x**2 + y**2
# 绘图
surf = ax.plot_surface(X=X,
            Y=Y,
            Z=-Z,
            rstride=2,  # row stride, 行跨度
            cstride=2,  # column stride, 列跨度 
            color='g',
            linewidth=0.5,
           )
# 调整视角
ax.view_init(elev=7,  # 仰角
       azim=30  # 方位角
      )
# 显示图形
plt.show()

图形:

python 利用matplotlib在3D空间绘制二次抛物面的案例

3、用多子区显示不同抛物面

fig = plt.figure(figsize=(24, 16),
         facecolor='khaki'
        )
# 二元函数定义域平面集
x = np.linspace(start=-3,
        stop=3,
        num=100
        )
y = np.linspace(start=-3,
        stop=3,
        num=100
        )
X, Y = np.meshgrid(x, y)  # 网格数据
Z = np.power(X, 2) + np.power(Y, 2)  # 二元函数 z = x**2 + y**2
# -------------------------------- subplot(221) --------------------------------
ax = fig.add_subplot(221, projection='3d')
# 开口向上的抛物面
surf = ax.plot_surface(X=X,
            Y=Y,
            Z=Z,
            rstride=2,  # row stride, 行跨度
            cstride=2,  # column stride, 列跨度 
            color='r',
            linewidth=0.5,
           )
# -------------------------------- subplot(223) --------------------------------
ax = fig.add_subplot(223, projection='3d')
# 开口向下的抛物面
surf = ax.plot_surface(X=X,
            Y=Y,
            Z=-Z,
            rstride=2,  # row stride, 行跨度
            cstride=2,  # column stride, 列跨度 
            color='g',
            linewidth=0.5,
           )
# -------------------------------- subplot(22, (2,4)) --------------------------------
ax = plt.subplot2grid(shape=(2,2),
           loc=(0, 1),
           rowspan=2,
           projection='3d'
           )
# 开口向上的抛物面
surf1 = ax.plot_surface(X=X,
            Y=Y,
            Z=Z,
            rstride=2,  # row stride, 行跨度
            cstride=2,  # column stride, 列跨度 
            color='r',
            linewidth=0.5,
            )
# 开口向下的抛物面
surf2 = ax.plot_surface(X=X,
            Y=Y,
            Z=-Z,
            rstride=2,  # row stride, 行跨度
            cstride=2,  # column stride, 列跨度 
            color='g',
            linewidth=0.5,
           )
# 调整视角
ax.view_init(elev=7,  # 仰角
       azim=30  # 方位角
      )
# -------------------------------- fig --------------------------------
# 调整子区布局
fig.subplots_adjust(wspace=0.1,  # width space
          hspace=0.15  # height space
          )
# 显示图形
plt.show()

图形:

python 利用matplotlib在3D空间绘制二次抛物面的案例

软件版本:

python 利用matplotlib在3D空间绘制二次抛物面的案例

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

Python 相关文章推荐
Python抓取Discuz!用户名脚本代码
Dec 30 Python
Python单例模式实例分析
Jan 14 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
python实现人民币大写转换
Jun 20 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
PyCharm 专业版安装图文教程
Feb 20 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Python使用pycharm导入pymysql教程
Sep 16 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
python反扒机制的5种解决方法
Feb 06 #Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 #Python
You might like
谈谈关于php的优点与缺点
2013/04/11 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
Python进行数据提取的方法总结
2016/08/22 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python2.7到3.x迁移指南
2018/02/01 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python3多线程知识点总结
2019/09/26 Python
python中自带的三个装饰器的实现
2019/11/08 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
教师节促销方案
2014/03/22 职场文书
经销商年会策划方案
2014/05/29 职场文书
中标通知书格式
2015/04/17 职场文书