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

Python 如何使用LaTeX数学符号在Mayavi中标记轴?,python,mayavi,Python,Mayavi,我在一个python脚本中导入mayavi来显示一些3D数据集,结果发现以下简单的轴标签不起作用 from mayavi import mlab axes =mlab.axes(xlabel='$\alpha$', ylabel='$\beta$', zlabel='$\sigma$') 有什么想法吗?我无法从google或用户手册中找到解决方案。尝试在每个字符串前面加一个r from mayavi import mlab axes =mlab.axes(xlabel=r'$\alpha$',

我在一个python脚本中导入mayavi来显示一些3D数据集,结果发现以下简单的轴标签不起作用

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

有什么想法吗?我无法从google或用户手册中找到解决方案。

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

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

很遗憾,Mayavi不支持LaTeX符号。

线程有点旧,但问题仍然没有解决。对于那些仍然对在mayavi中使用Latex文本感兴趣的用户,可以查看以下网站:


这里介绍了一种变通方法,将latex文档转换为png文件,然后再次导入mayavi。祝你好运

我编写了一个名为
mlabtex
的软件包来支持mayavi:

它生成使用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()
要标记轴,现在可以手动将文本放置在那里


祝你好运

正如@freethebees在回答中指出的,Mayavi不支持乳胶标签。将我对的回答视为在Mayavi场景中实现乳胶标签的一种方式。可以将Mayavi场景(不带轴)导出为图像,并导入到PGFPlots中,同时进行坐标变换以正确放置LaTeX绘制的轴

示例结果:


对此进行了解释。没有
r
前缀,
\a
\b
被解释为转义序列。我不认为这对
'$\sigma$'
是必要的,因为
\s
似乎不是可识别的转义序列。你确定它有效吗?我没有可用的资源来测试这一点,但我想问题更多的是mayavi是否支持TeX。@Zykx:对我不起作用。请提供一个完整的例子。@ Zykx已经被其他人提到了,这个答案不适用于Mayavi,请考虑一下……Mayavi肯定支持TEX标签吗?我在文件中找不到任何提及此事的地方。在Matplotlib中,有一个
usetex
选项,我认为默认情况下是关闭的-可能有类似的情况?间接地,请查看@greeeeeen答案:现在可以使用
pip install mlabtex
安装它。