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

时间:2019-11-26 18:46:43

标签: python matplotlib plot 3d

我试图在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

1 个答案:

答案 0 :(得分:0)

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