использовать формат с выражением фракции tex в python matplotlib - PullRequest
0 голосов
/ 30 мая 2018

Я использую matplotlib.Мне нужно получить xlabels как: [1 / 8,2 / 8,3 / 8,4 / 8..14 / 8].Я хочу сделать это в цикле.Поэтому для лучшего обзора я использую TEX в Python.Для рендеринга выражения дроби в цикле я использую метод .format.Но это не работает должным образом.Существует некоторый конфликт между использованием {} в TEX и методом .format.Я пытался использовать double {}, но он также не работает.

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
xax = ax.xaxis  # get x axis

labels = ['0']
for i in range(0, 14):
    labels.append(r'$\frac{}{8}$'.format(i)) # when trying to insert i an error occurs

xax.set_ticklabels(labels)

plt.show()

1 Ответ

0 голосов
/ 30 мая 2018

Вам нужно экранировать скрученные скобки ({) с другой скрученной скобкой.

r'$\frac{{{}}}{{8}}$'.format(i)

Здесь для форматирования используется самая внутренняя пара скобок в {{{}}}.Экранирующая пара {{ заменяется одной скобкой во время форматирования.Следовательно, r'$\frac{{{}}}{{8}}$'.format(1) приведет к r'$\frac{1}{8}$', который будет действительной строкой MathText.

...