Как маркировать оси в Mayavi, используя математические символы LaTeX?

Я импортирую Mayavi в скрипт Python для отображения некоторого набора 3D-данных. Оказывается, следующая наивная маркировка осей не работает

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

Есть идеи? Я не могу найти решение ни в Google, ни в руководстве пользователя.

7 голосов | спросил nye17 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 15 Sep 2011 08:51:16 +0400 2011, 08:51:16

4 ответа


0

Mayavi, к сожалению, не поддерживает символы LaTeX.

ответил freethebees 7 J0000006Europe/Moscow 2013, 16:24:59
0

Поток устарел, но проблема все еще не решена. Для тех, кто все еще заинтересован в использовании латексного текста в Mayavi, можете взглянуть на этот сайт:

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

Там представлен обходной путь, при котором латексный документ преобразуется в файл png, который снова импортируется в mayavi. Удачи!

ответил greeeeeeen 18 Jpm1000000pmThu, 18 Jan 2018 23:39:20 +030018 2018, 23:39:20
0

Я написал пакет для включения поддержки латекса для 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()

 Латекс в майяви Чтобы пометить оси, теперь вы можете поместить текст вручную.

Удачи!

ответил greeeeeeen 26 Mayam18 2018, 01:40:33
0

Попробуйте поставить r перед каждой строкой

from mayavi import mlab
axes =mlab.axes(xlabel=r'$\alpha$', ylabel=r'$\beta$', zlabel=r'$\sigma$')
ответил Zykx 13 FebruaryEurope/MoscowbMon, 13 Feb 2012 21:44:49 +0400000000pmMon, 13 Feb 2012 21:44:49 +040012 2012, 21:44:49

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132