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字符转换
Sep 06 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
利用python画一颗心的方法示例
Jan 31 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
python的mysql数据库建立表与插入数据操作示例
Sep 30 Python
Django 解决由save方法引发的错误
May 21 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
Python基于traceback模块获取异常信息
Jul 23 Python
python try...finally...的实现方法
Nov 25 Python
Python3爬虫ChromeDriver的安装实例
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
python反扒机制的5种解决方法
Feb 06 #Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 #Python
You might like
PHP 实例化类的一点摘记
2008/03/23 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
PHP如何实现跨域
2016/05/30 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
python判断windows隐藏文件的方法
2014/03/21 Python
python下10个简单实例代码
2017/11/15 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
Python的缺点和劣势分析
2019/11/19 Python
详解python内置模块urllib
2020/09/09 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
苹果台湾官网:Apple台湾
2019/01/05 全球购物
软件测试工程师笔试题带答案
2015/03/27 面试题
方正Java笔试题
2014/07/03 面试题
应用心理学个人的求职信
2013/12/08 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
525心理活动总结
2014/07/04 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
JAVA API 实用类 String详解
2021/10/05 Java/Android