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的几条建议分享
Feb 10 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
python实现ID3决策树算法
Dec 20 Python
python中format()函数的简单使用教程
Mar 14 Python
Flask之请求钩子的实现
Dec 23 Python
使用python爬取抖音视频列表信息
Jul 15 Python
Pytorch环境搭建与基本语法
Jun 03 Python
Python Django搭建网站流程图解
Jun 13 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 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中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python安装requests库的实例代码
2019/06/25 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
Django models.py应用实现过程详解
2019/07/29 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
Python PyQt5整理介绍
2020/04/01 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
护理专业的自荐信
2013/10/22 职场文书
高中校园广播稿
2014/01/11 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
现场施工员岗位职责
2015/04/11 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
python基于turtle绘制几何图形
2021/06/15 Python