我尝试使用matplotlib绘制不同大小的长方体,例如:在旋转之后,长方体在视觉上不以非物理方式重叠,立方体具有不同的颜色和围绕它们绘制的框。
我读过几篇博客文章和stackoverflow页面引用了类似的问题,但总是有细微的差别;没有一个对我有用的。克服重叠问题的最简单方法是使用体素(如https://matplotlib。org/API/_as_gen/mpl_toolkits。mplot3d.axes3d.Axes3D.html?突出显示=体素#mpl_toolkits。mplot3d.axes3d.Axes3D.voxels),但这些不允许我在它们周围绘制框。在matplotlib中最简单的方法是什么?
下面的图片显示了我在左边有什么,我想要的在右边。
编辑:我已经研究了几种可以给予预期效果的方法,其中主要有:
- 使用体素,但以某种方式缩放它们,使得单个体素表示单个项目。
- 使用曲面图,然后动态调整绘图顺序以避免非物理重叠。
前者似乎更容易执行,但我仍然被难住了。
2条答案
按热度按时间oipij1gg1#
A.使用
Poly3DCollection
一个选项是创建一个
Poly3DCollection
的长方体面。由于重叠的问题不存在于同一收藏的艺术家,这可能最好地服务于这里的目的。B.使用
plot_surface
从使用
plot_surface
的this question中调整解决方案,并根据需要允许不同的大小,在大多数情况下似乎都能很好地工作:lhcgjxsq2#
下面的代码不仅适用于长方体,也适用于任何多边形
分别输入x、y和z的坐标
Polygon Prism