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 08 Python
由Python运算π的值深入Python中科学计算的实现
Apr 17 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
Python构建图像分类识别器的方法
Jan 12 Python
python 自动批量打开网页的示例
Feb 21 Python
Python静态类型检查新工具之pyright 使用指南
Apr 26 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
python如何保证输入键入数字的方法
Aug 23 Python
python支持多线程的爬虫实例
Dec 21 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
Python如何telnet到网络设备
Feb 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
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
Javascript 类型转换方法
2010/10/24 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
python实现小球弹跳效果
2019/05/10 Python
Python之修改图片像素值的方法
2019/07/03 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
J2EE包括哪些技术
2016/11/25 面试题
2014年群众路线党员自我评议
2014/09/24 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
小学班主任个人总结
2015/03/03 职场文书
创先争优活动个人总结
2015/03/04 职场文书
离职证明格式样本
2015/06/12 职场文书
python turtle绘图
2022/05/04 Python
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript