我在一个 Python 脚本中导入 Mayavi 来显示一些 3D 数据,但是下面这种“天真”的坐标轴标签设置方式不起作用:
from mayavi import mlab
axes =mlab.axes(xlabel='$\alpha$', ylabel='$\beta$', zlabel='$\sigma$')
任何想法?我无法从谷歌或用户手册中找到解决方案。
不幸的是,Mayavi不支持LaTeX符号。
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文本的人,可以看看这个网站:
https://pgi-jcns.fz-juelich.de/portal/pages/latex-mayavi.html
在这里,提出了一种解决方法,即将latex文档转换为png文件,然后再导入到mayavi中。祝好运!
正如@freethebees的回答中所指出的那样,Mayavi不支持LaTeX标签。请参考我的回答this question,以实现在Mayavi场景中使用LaTeX标签的方法。您可以将Mayavi场景(无坐标轴)导出为图像,并将其与坐标变换一起导入到PGFPlots中,以正确放置由LaTeX绘制的坐标轴。
示例结果:
尝试在每个字符串前面加上 r
from mayavi import mlab
axes =mlab.axes(xlabel=r'$\alpha$', ylabel=r'$\beta$', zlabel=r'$\sigma$')
usetex
选项,默认情况下可能是关闭的 - 也许有类似的东西? - James