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发腾讯微博代码分享
Jan 10 Python
Php多进程实现代码
May 07 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
Numpy之将矩阵拉成向量的实例
Nov 30 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
numpy库reshape用法详解
Apr 19 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 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图片加水印原理(超简单的实例代码)
2013/01/18 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
JavaScript知识点整理
2015/12/09 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
pip install命令安装扩展库整理
2021/03/02 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
C语言中break与continue的区别
2012/07/12 面试题
Oracle的内存结构(Memory structures)
2015/06/10 面试题
乡镇网格化管理实施方案
2014/03/23 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
会计岗位职责范本
2015/04/02 职场文书
召开会议通知范文
2015/04/15 职场文书
物资采购管理制度
2015/08/06 职场文书
会议主持词通用版
2019/04/02 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
PHP中多字节字符串操作实例详解
2021/08/23 PHP