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修改Excel数据的实例代码
Nov 01 Python
python实现从字典中删除元素的方法
May 04 Python
python实现简单socket通信的方法
Apr 19 Python
Python应用库大全总结
May 30 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
python SocketServer源码深入解读
Sep 17 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
Python基于gevent实现高并发代码实例
May 15 Python
python模块如何查看
Jun 16 Python
Python第三方库安装缓慢的解决方法
Feb 06 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 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实现mysql数据库备份类
2008/03/20 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
python判断元素是否存在的实例方法
2020/09/24 Python
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
个人工作主要事迹
2014/05/08 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL