您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python 利用matplotlib在3D空间绘制二次抛物面的案例

51自学网 2021-10-30 23:00:24
  python
这篇教程python 利用matplotlib在3D空间绘制二次抛物面的案例写得很实用,希望能帮到您。

图形预览:

0、import

import numpy as npfrom matplotlib import pyplot as pltfrom 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()

图形:

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()

图形:

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()

图形:

软件版本:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。


python 利用panda 实现列联表(交叉表)
PyQt5通过信号实现MVC的示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。