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 相关文章推荐
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
Python实现k-means算法
Feb 23 Python
python自动12306抢票软件实现代码
Feb 24 Python
Python编写一个优美的下载器
Apr 15 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
django中forms组件的使用与注意
Jul 08 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Flask配置Cors跨域的实现
Jul 12 Python
python获取Linux发行版名称
Aug 30 Python
Pytorch环境搭建与基本语法
Jun 03 Python
python爬取代理ip的示例
Dec 18 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 输出缓存详解
2009/06/20 PHP
php生成随机密码的几种方法
2011/01/17 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
python多线程socket编程之多客户端接入
2017/09/12 Python
python装饰器深入学习
2018/04/06 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
十周年庆典策划方案
2014/06/03 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书