在2D图上投影3D表面

14 浏览
0 Comments

在2D图上投影3D表面

在2D中是否有类似于"Axes3DSubplot.plot_surface"的等价物?

我试图在matplotlib中绘制网格在XY平面上的投影(而不是在'3d'模式下)。

我试图产生与以下代码相似的结果:

ax1.plot_surface(0, y, z, rstride=1, cstride=1, facecolors = colors)

但是在2D子图中我找不到plot_surface的等价物。我唯一能做的就是使用以下代码绘制线框图(但没有面颜色):

ax2.plot(y, z, 'k')
ax2.plot(y.T, z.T, 'k')

我无法上传图片,但基本上我想将"colors"放在第二个子图中。

谢谢。

编辑:

@Tim

是的,我想,在这种情况下,我可以使用以下代码实现:

ax2.contourf(y, z, np.hypot(x,y), levels=np.hypot(x,y)[0], cmap=matplotlib.cm.jet)

在更通用的情况下,您需要正确的level函数以及对levels和colormap的微调,但似乎是可行的。

另一种解决方案是使用matplotlib.patches.Polygon来绘制每个投影面。

0