Я использую matplotlib для создания графиков. В большинстве случаев он работает так, как предполагается. Но если я использую TeX как текст в тиках, он ведет себя иначе, чем текст в других меток или аннотаций. Я установил rc.text.usetex = False, и ярлыки экспортируются в виде исходного текста, но текст тиков интерпретируется. В случае логарифмических графиков или если используются другие команды TeX, такие как \ frac, это приводит к простым числам, которые перемещаются в их позиции (например, надстрочный или дробный).Как экспортировать сырые строки для текста в тиках на svg из matplotlib?
Я использую следующую функцию для экспорта графики svg с необработанными строками. Впоследствии я использую Inkscape для работы над деталями и экспортирую его как PDF и TeX, поэтому весь текст помещается в графику с помощью команды put.
def export_svg(plt=plt,svg_name='name'):
plt.rc('text', usetex=False)
plt.rc('text.latex', unicode = False)
plt.rc('svg',fonttype = 'none')
for blub in plt.findobj(match=plt.Text):
blub.set_text(blub.get_text().replace('$','\$'))
plt.savefig(svg_name + '.svg')
axes.xaxis.get_ticklabels()[2].get_text()
дает '$10^{1}$'
axes.xaxis.get_label().get_text()
дает '\\$ x \\$'
. Он становится '\$ x \$'
в файле svg и является именно тем форматом, который мне нужен.
Кому-то еще удалось решить эту проблему? Я думаю, что я должен начать с класса Formatter, чтобы получить обратную косую черту, которая отсутствует в тике.
Благодаря
Марк