gpt4 book ai didi

python - 如何通过 matplotlib 删除 plot_wireframe 中的隐藏线?

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:34 25 4
gpt4 key购买 nike

python 2.x 中的matplotlib 是否支持去除隐藏线?

我如何自己实现它?

这是在这里解决的另一篇文章的进一步问题: How to obtain 3D colored surface via Python?

最佳答案

我假设“隐藏”是指 View 中表面 block 后面的线,例如,绘图中“山丘”后面的线。

使用plot_surface代替plot_wireframe:

plot_surface vs plot_wireframe

我用过

plot_wireframe(X, Y, Z, rstride=10, cstride=10)

创建第一个和

plot_surface(X, Y, Z, rstride=10, cstride=10, color="white", shade=False, edgecolor="blue")

创建第二个图。

如果您想将其与对边缘进行颜色映射相结合,则必须使用一些内部构件。如果您使用 cmap 参数对曲面进行颜色映射,则 Poly3DCollection.do_3d_projection 的源代码最终会调用 to_rgba(self._A) 来计算面部颜色。将其重新映射到边缘颜色,您就可以开始了:

surf = ax.plot_surface(X, Y, Z, rstride=2, cstride=2, shade=False, cmap="jet", linewidth=1)
surf.set_edgecolors(surf.to_rgba(surf._A))
surf.set_facecolors("white")

产生这个情节:

Final plot

(您可能必须在第一次渲染过程后再次调用 set_edgecolors/set_facecolors,因为 do_3d_projection 可能会覆盖这些值;我在交互模式,还没有检查。)

关于python - 如何通过 matplotlib 删除 plot_wireframe 中的隐藏线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24976784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com