在matplotlib 3D图中,我可以设置行数/列数,该行数/列数确定了表面上可见的面的总数,

s=ax.plot_surface(x,y,z, color='gray', shade=True, rstride=1,cstride=1)


其中rstride和cstride的数字越小,面越小。由于我还在此表面上绘制流线/轨迹,因此我想摆脱这些面的边缘。现在,有了

s.set_linewidth(0)


并设置较低的rstride和cstride值,我几乎得到了我想要的,即表面上几乎连续不断变化的颜色,从而产生了良好的3D效果。

不幸的是,线条留在了那里,就像两张脸之间的空白处。有没有办法做到这一点?也许我只是想念一个简单的命令..

编辑:生成表面的代码很长,无法在此处报告。我使用上面写的解决方法附加了结果的快照。

最佳答案

您是否也尝试过在其中添加antialiased=False

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1)




surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, linewidth=0)




surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, linewidth=0, antialiased=False)

09-27 12:46