用透视图绘制3D曲面和线

问题描述 投票:1回答:1

我正在尝试绘制一条穿过3-D曲面的线以指示该轴。但是,这只会导致将线条完全绘制在表面的顶部或下方,更改zorder并不能解决问题。

我正在寻找的是使该线看起来好像在穿透表面

我的代码和输出如下:

fig = plt.figure(figsize=(9,9))
ax = plt.axes(projection='3d')

ax.plot_surface(X,Z,Y,
                linewidth=0,
                cmap=cm.jet,
                facecolors=cm.jet(r_3d/max(abs(r_3d.flatten()))),
                edgecolor='none',
                shade=False,
                antialiased=False)

ax.plot([0,0],[-0.3,0.3],[0,0],linewidth=2,c='k')

在表面顶部绘制的线的示例

Example of line plotted on top of surface

我想要的输出的手绘示例

Hand drawn example of my desired output

python matplotlib plot 3d
1个回答
-1
投票

我认为您可以使用zorder(示例here)解决此问题,尽管我没有专门尝试使用3D绘图。 zorder更改打印顺序,或实质上更改绘制特定项目的深度。大的z顺序绘制在顶部,小的z顺序绘制在背面,因此,如果将3d项的z顺序设置为1,将线条作为z顺序为零,则应该起作用。

© www.soinside.com 2019 - 2024. All rights reserved.