【问题标题】:How to label axes in Mayavi using LaTeX math symbols?如何使用 LaTeX 数学符号在 Mayavi 中标记轴?
【发布时间】:2011-11-17 13:37:59
【问题描述】:

我在 python 脚本中导入 mayavi 以显示一些 3D 数据集,结果以下 naive 轴标签不起作用

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

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

【问题讨论】:

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

标签: python mayavi


【解决方案1】:

遗憾的是,Mayavi 不支持 LaTeX 符号。

【讨论】:

【解决方案2】:

我编写了一个包来启用对 mayavi 的乳胶支持,名为 mlabtexhttps://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()

要标记轴,您现在可以手动将文本放在那里。

祝你好运!

【讨论】:

  • 您现在可以使用pip install mlabtex 安装它。
【解决方案3】:

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

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

这里提供了一种解决方法,将乳胶文档转换为 png 文件,然后再次将其导入到 mayavi。祝你好运!

【讨论】:

    【解决方案4】:

    正如@freethebees 的回答中所述,Mayavi 不支持 LaTeX 标签。请参阅我对 this question 的回答,作为在 Mayavi 场景中实现 LaTeX 标签的一种方式。您可以将 Mayavi 场景(不带坐标轴)导出为图像并导入 PGFPlot,同时进行坐标变换以正确放置 LaTeX 绘制的坐标轴。

    示例结果:

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

      • 这是解释here。如果没有 r 前缀,\a\b 将被解释为转义序列。我认为 '$\sigma$' 没有必要这样做,因为 \s 似乎不是公认的转义序列。
      • 你确定它有效吗?我没有可用的资源来测试这个,但大概我认为这个问题更多地与 mayavi 是否支持 TeX 有关。
      • @Zykx:对我不起作用。请提供一个完整的例子。
      • @Zykx 正如其他人已经提到的,这个答案不适用于 Mayavi,请考虑审查它......
      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 2018-07-26
      • 2017-10-29
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      相关资源
      最近更新 更多