Matplotlib 3D 数据

网友投稿 678 2022-11-26

Matplotlib 3D 数据

Matplotlib 3D 数据

3D 图

首先在进行 ​​3D Plot​​​ 时除了导入 ​​matplotlib​​​ ,还要额外添加一个模块,即 ​​Axes 3D​​ 3D 坐标轴显示:

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D

之后要先定义一个图像窗口,在窗口上添加3D坐标轴,显示成下图:

fig = plt.figure()ax = Axes3D(fig)

接下来给进 X 和 Y 值,并将 X 和 Y 编织成栅格。每一个(X, Y)点对应的高度值我们用下面这个函数来计算

# X, Y valueX = np.arange(-4, 4, 0.25)Y = np.arange(-4, 4, 0.25)X, Y = np.meshgrid(X, Y) # x-y 平面的网格R = np.sqrt(X ** 2 + Y ** 2)# height valueZ = np.sin(R)

今天的结果是这样的:

做出一个三维曲面,并将一个 ​​colormap rainbow​​ 填充颜色,之后将三维图像投影到 XY 平面上做一个等高线图。 plot 3D 图像:

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))

其中,​​rstride​​​ 和 ​​cstride​​ 分别代表 row 和 column 的跨度。

下面两个图分别是跨度为1 和 5 的效果:

投影

下面添加 XY 平面的等高线:

ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))

如果 ​​zdir​​ 选择了x,那么效果将会是对于 XZ 平面的投影,效果如下:

最终我们的结果如下图:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《高效学习OpenGL》 之 卷积 glConvolutionFilter2D(), glCopyConvolutionFilter2D(),glSeparableFilter2D()
下一篇:Matplotlib scatter 散点图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~