微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 matplotlib 绘制光滑表面

如何解决使用 matplotlib 绘制光滑表面

我是在 Python 中使用 matplotlib 模块的新手,尤其是绘制 3D 曲面。我已经生成一个数据矩阵,其中数据对应于

import numpy as np
z = np.linspace(0,3*np.pi,301)
x = np.linspace(0,2*np.pi,201)

函数sin(z)sin(x)中,也就是说

Y = np.sin(z).reshape((301,1))*np.sin(x).reshape((1,201))

我设法使用代码绘制了这个表面

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,6))
ax1 = fig.add_subplot(111,projection='3d')
mycmap = plt.get_cmap('gist_earth')
ax1.set_title('gist_earth color map')
surf1 = ax1.plot_surface(Z,X,Y.T,cmap=mycmap,rstride=2,cstride=2)
ax1.view_init(45,45)
fig.colorbar(surf1,ax=ax1,shrink=0.5,aspect=5)

结果如下:

enter image description here

然后,我想做同样的事情,但在数据矩阵中添加一个随机误差项。为此,新矩阵将定义为

Y = np.sin(zsam).reshape((301,1))*np.sin(xsam).reshape((1,201)) + np.random.normal(0,0.25,301*201).reshape((301,201))

然而,当我尝试绘制这个矩阵时,我得到了这个:

enter code here

如何获得第一种情况下的光滑表面?任何帮助将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。