我在 python 脚本中导入 mayavi 以显示一些 3D 数据集,结果发现以下简单的轴标签不起作用
from mayavi import mlab
axes =mlab.axes(xlabel='$\alpha$', ylabel='$\beta$', zlabel='$\sigma$')
有任何想法吗?我无法从谷歌或用户手册中找到解决方案。
Mayavi does not support LaTeX symbols sadly.
我编写了一个包来启用对 mayavi 的乳胶支持,名为mlabtex
:
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 文本感兴趣的人,可以看看这个网站:
https://pgi-jcns.fz-juelich.de/portal/pages/latex-mayavi.html
在那里,提出了一种解决方法,将乳胶文档转换为 png 文件,该文件再次导入到 mayavi。祝你好运!
正如@freethebees 的回答中所指出的,Mayavi 不支持 LaTeX 标签。将我对这个问题的回答视为在 Mayavi 场景中实现 LaTeX 标签的一种方式。您可以将 Mayavi 场景(不带坐标轴)导出为图像并导入 PGFPlot,同时进行坐标变换以正确放置 LaTeX 绘制的坐标轴。
示例结果:
尝试在每个字符串前面放一个 r
from mayavi import mlab
axes =mlab.axes(xlabel=r'$\alpha$', ylabel=r'$\beta$', zlabel=r'$\sigma$')