gpt4 book ai didi

python - 用于科学 3D 绘图的 Mayavi 替代品

转载 作者:太空狗 更新时间:2023-10-30 00:16:43 25 4
gpt4 key购买 nike

我需要绘制一个在 3D 网格 中构造的标量场,如下所示:

import numpy as np
from mayavi import mlab

dt = 10
X,Y,Z = np.mgrid[0:dt,0:dt,0:dt]

F = X**2+Y**2+Z**2

test = mlab.figure(size = (1024,768), bgcolor = (1,1,1), fgcolor = (0, 0, 0))
sf = mlab.pipeline.scalar_field(X,Y,Z,F)
vl = mlab.pipeline.volume(sf)
mlab.outline()
mlab.axes()
mlab.title('Can not change font size for this title')
mlab.xlabel('Only end ticks')
mlab.ylabel('No major ticks')

enter image description here

我想在 Python 中这样做,因为我用这种语言模拟了许多数据集,并且我希望能够在模拟参数中执行灵敏度时快速可视化它们。

Mayavi 似乎为科学 3D 绘图提供了相当标准的例程。然而,当谈到在出版物中传达这些图时,非常基本的图定制不可用,例如轴中的主要和次要刻度。此外,那些受支持的非常基本的功能迄今为止甚至无法正常工作(例如,请参见字体大小为 bughere 的示例)。

在 Python 中是否有任何体面且易于使用的科学 3D 绘图库?我曾尝试学习 vtk,但网站示例似乎已过时(例如 volume rendering 无法运行的示例,我尝试编辑多行代码以使其在没有运气的情况下工作)并且其他人似乎同意缺少文档。

对于体面的科学绘图库,我的意思是:

  • 允许在轴、标签、标题等中自定义字体。
  • 可以编辑轴刻度间距(至少有主要刻度)。
  • 可以添加颜色条
  • 有文档。

最佳答案

您应该尝试 matplotlib,如果您还没有这样做的话。使用 meshgridcontourcontourf(您可以很容易地在网络上找到脚本)在结构化网格上绘制数据并不难。甚至可以在非结构化网格上绘图(查看:https://grantingram.wordpress.com/plotting-2d-unstructured-data-using-free-software/)

它具有“体面的”科学绘图库的特征。

编辑:当您说“3D”绘图时,我假设您想要一个包含 2 个变量的函数图,因此它的图形是 3D 的。

但是,如果您的数据取决于 3 个空间变量,我假设您希望能够显示剖切面等。然后我建议您将数据输出到文件并使用适当的可视化包,例如 ParaView(使用 VTK)或 TecPlot(非免费)。您可以通过脚本自动化可视化管道(我相信 ParaView 支持 Python 脚本)。

关于python - 用于科学 3D 绘图的 Mayavi 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35709928/

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