如何在Mayavi中使用LaTeX数学符号标记坐标轴?

9

我在一个 Python 脚本中导入 Mayavi 来显示一些 3D 数据,但是下面这种“天真”的坐标轴标签设置方式不起作用:

from mayavi import mlab
axes =mlab.axes(xlabel='$\alpha$', ylabel='$\beta$', zlabel='$\sigma$')

任何想法?我无法从谷歌或用户手册中找到解决方案。

1
Mayavi是否支持TeX标签?我在文档中找不到任何提及。在Matplotlib中,有一个usetex选项,默认情况下可能是关闭的 - 也许有类似的东西? - James
5个回答

5

不幸的是,Mayavi不支持LaTeX符号。


1
它间接地实现了,看看@greeeeeeen的答案:https://github.com/MuellerSeb/mlabtex - LSchueler

2
我写了一个名为 mlabtex 的包,可以为Mayavi启用LaTeX支持:https://github.com/MuellerSeb/mlabtex。它生成一个由matplotlib渲染的图像,并将其用作mlab.surf的纹理。界面类似于mlab.text3d
使用它,您可以实现以下效果:
import os
os.environ['QT_API'] = 'pyqt'
os.environ['ETS_TOOLKIT'] = 'qt4'
from mayavi import mlab
from mlabtex import mlabtex

TEXT = (r'Sebastian M\"uller, ' +
        r'$f(x)=\displaystyle\sum_{n=0}^\infty ' +
        r'f^{(n)}(x_0)\cdot\frac{(x-x_0)^n}{n!}$')

tex = mlabtex(0., 0., 0.,
              TEXT,
              color=(0., 0., 0.),
              orientation=(30., 0., 0.),
              dpi=1200)
mlab.axes()
mlab.show()

Mayavi 中的 LaTeX 要标记坐标轴,现在可以手动放置文本。

祝你好运!


现在您可以使用“pip install mlabtex”进行安装。 - MuellerSeb

1

这个帖子有点旧,但问题仍未解决。对于那些仍然有兴趣在mayavi中使用Latex文本的人,可以看看这个网站:

https://pgi-jcns.fz-juelich.de/portal/pages/latex-mayavi.html

在这里,提出了一种解决方法,即将latex文档转换为png文件,然后再导入到mayavi中。祝好运!


-1

正如@freethebees的回答中所指出的那样,Mayavi不支持LaTeX标签。请参考我的回答this question,以实现在Mayavi场景中使用LaTeX标签的方法。您可以将Mayavi场景(无坐标轴)导出为图像,并将其与坐标变换一起导入到PGFPlots中,以正确放置由LaTeX绘制的坐标轴。

示例结果:

enter image description here


-4

尝试在每个字符串前面加上 r

from mayavi import mlab
axes =mlab.axes(xlabel=r'$\alpha$', ylabel=r'$\beta$', zlabel=r'$\sigma$')

这在这里有解释。如果没有r前缀,\a\b会被解释为转义序列。我认为对于'$\sigma$'来说这不是必要的,因为\s似乎不是一个被识别的转义序列。 - James
1
你确定它能正常工作吗?我没有可用的资源来测试它,但我认为问题更多地与mayavi是否支持TeX有关。 - nye17
1
@Zykx:对我不起作用。请提供一个完整的例子。 - Adobe
@Zykx 正如其他人所提到的,这个答案不适用于Mayavi,请考虑重新审视它... - Saullo G. P. Castro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接