使用 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 (将#修改为@)