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的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python利用拉链法实现字典方法示例
Mar 25 Python
使用Python实现简单的服务器功能
Aug 25 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
python3对接mysql数据库实例详解
Apr 30 Python
原生python实现knn分类算法
Oct 24 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
使用python向MongoDB插入时间字段的操作
May 18 Python
python使用torch随机初始化参数
Mar 22 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 date与gmdate的获取日期的区别
2010/02/08 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
jQuery设计思想
2017/03/07 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
js判断节假日实例代码
2017/12/27 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python实现求特征选择的信息增益
2018/12/18 Python
Python中函数的返回值示例浅析
2019/08/28 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python求凸包及多边形面积教程
2020/04/12 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
10条PHP编程习惯
2014/05/26 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
网络管理专业求职信
2014/03/15 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
电台广播稿范文
2015/08/19 职场文书
环保建议书作文500字
2015/09/14 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle