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 FTP操作类代码分享
May 13 Python
Python解决鸡兔同笼问题的方法
Dec 20 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
对django 模型 unique together的示例讲解
Aug 06 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
dpn网络的pytorch实现方式
Jan 14 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
python实现的web监控系统
Apr 27 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP实现验证码校验功能
2017/11/16 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
layui表格数据重载
2019/07/27 Javascript
Python中每次处理一个字符的5种方法
2015/05/21 Python
python登录豆瓣并发帖的方法
2015/07/08 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
详解Python locals()的陷阱
2019/03/26 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
安全生产活动月方案
2014/03/09 职场文书
特教教师先进事迹
2014/05/21 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
2015年度学校应急管理工作总结
2015/10/22 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书