gpt4 book ai didi

python - 使用 Mayavi 制作 3D 图形,带有 Matplotlib 风格的坐标轴

转载 作者:太空狗 更新时间:2023-10-29 20:30:38 35 4
gpt4 key购买 nike

我一直在使用 Mayavi 进行 3D 绘图,我可以绘制我想要的散点图,但似乎无法让轴看起来合适。我发现以下 previous question开始了解我所追求的,但没有详细说明。我想要像 #1 这样的 3D 散点图但有漂亮的轴,如 #2 (我会嵌入但我没有足够的声誉)。常规的 Mayavi Axes 不会切割它。获取 Matplotlib 拥有的平面有什么技巧吗?

最佳答案

一旦我们掌握了“诀窍”,这实际上就非常简单了,我已经做过很多次了。

“技巧”是先生成 mayavi 图,然后将其传输到 matplotlib 窗口,您可以在其中使用所有熟悉的 matplotlib 工具来制作带有数字、日期、箭头或 matplotlib 提供的其他部分的坐标轴。在此代码示例中,我将把 mayavi“铜球”示例放入一组 matplotlib 轴中:

import numpy, pylab, mayavi, mayavi.mlab
import matplotlib.pyplot as plt

t = numpy.linspace(0, 4 * numpy.pi, 20)
cos,sin = numpy.cos, numpy.sin

x = sin(2 * t)
y = cos(t)
z = cos(2 * t)
s = 2 + sin(t)
mayavi.mlab.points3d(x, y, z, s, colormap="copper", scale_factor=.25)

arr = mayavi.mlab.screenshot()
fig = plt.figure(figsize=(5, 5))
pylab.imshow(arr)

plt.show()

结果只是 matplotlib 轴集中的 mayavi 图: Mayavi graphics in matplotlib axes

唯一棘手的部分是,如果您想生成不止一个或两个手动构建的图,您需要建立有关 mayavi 和 matplotlib 的比例和维度的实用知识,以便将两者一起缩放。这是非常重要的,但对于 Mayavi 和 Matplotlib 以及从你们都知道的事物的声音来看,它们都有很好的记录,所以我不会重复这些要点。 (既然东西在 Matplotlib 中,您可以 make them part of generated PDFs too 或使用 python-docx 将它们移植到 Microsoft Word 中)

关于python - 使用 Mayavi 制作 3D 图形,带有 Matplotlib 风格的坐标轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025198/

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