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中的CURL PycURL使用例子
Jun 01 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 Python
浅谈Python中函数的参数传递
Jun 21 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Python正则捕获操作示例
Aug 19 Python
python实现杨氏矩阵查找
Mar 02 Python
Python print不能立即打印的解决方式
Feb 19 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
python3中TQDM库安装及使用详解
Nov 18 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 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实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
使用PHP开发留言板功能
2019/11/19 PHP
JQuery优缺点分析说明
2011/04/10 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
python多线程操作实例
2014/11/21 Python
Python实现的密码强度检测器示例
2017/08/23 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
python写入文件自动换行问题的方法
2019/07/05 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
linux面试题参考答案(10)
2013/11/04 面试题
培训演讲稿范文
2014/01/12 职场文书
品质主管岗位职责
2014/03/16 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
大学生毕业评语
2014/12/31 职场文书
社区工作者个人总结
2015/02/28 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
Python基本数据类型之字符串str
2021/07/21 Python