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中尝试多线程编程的一个简明例子
Apr 07 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
python基础教程项目四之新闻聚合
Apr 02 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
使用python画社交网络图实例代码
Jul 10 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
python logging日志模块原理及操作解析
Oct 12 Python
NumPy排序的实现
Jan 21 Python
python 装饰器的使用示例
Oct 10 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
详解Python中的分支和循环结构
2020/02/11 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
高中数学教师求职信
2013/10/30 职场文书
公司综合部的成员自我评价分享
2013/11/05 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
医学生个人求职信范文
2014/02/07 职场文书
大课间活动实施方案
2014/03/06 职场文书
一年级班主任感言
2014/03/08 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
关于运动会的广播稿
2014/09/22 职场文书
护士业务学习心得体会
2016/01/25 职场文书