Двузначный индекс не отображается должным образом в латексе в аннотации matplotlib на графикеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Двузначный индекс не отображается должным образом в латексе в аннотации matplotlib на графике

Сообщение Anonymous »

Двузначный индекс не отображается должным образом в латексе в аннотации matplotlib на графике

Код: Выделить всё

phi = (1 + np.sqrt(5)) / 2
eps = 0.1
a, b = 0, 1

f = lambda x: 2 * x + 1 / x

def _golden_section(eps=0.01, a=0, b=1, f=f) -> tuple[float, int, list[float]]:
iter_count, steps = 0, []
#plt.annotate
while abs(b - a) >= eps:
x1, x2 = b - (b - a) / phi, a + (b - a) / phi

if f(x1) >= f(x2):
a = x1
steps.append(a)
else:
b = x2
steps.append(b)

iter_count += 1

return (a + b) / 2, iter_count, steps

###################### plotting ######################

fig, ax = plt.subplots(1, 2, figsize=(16, 4))
h = 0.001

m, _, steps = _golden_section()
# built on f(min), f(max) values
y = [f(m) - h, max(f(0 + h), f(1)) + h]

# add step to 0 because doesn't exist in zero
x = np.arange(0.3 + h, 1 + h, h)

ax[0].plot(x, f(x), label="$f(x) = 2x + \\frac{1}{x}$")
ax[0].plot(m, f(m), "r*")

ax[0].axis('tight')
ax[0].set_xlabel("x")
ax[0].set_ylabel("y")
ax[0].set_title("Golden-Section Search with $\\varepsilon = 0.1$")
ax[0].legend()
Основная часть:

Код: Выделить всё

# vertical line designating steps
for i, l in enumerate(steps, 1):
ax[0].plot([l, l], y, 'r--', alpha=(len(steps) - i) / len(steps))

ax[0].annotate("$f_{}$".format(i), (l, np.random.uniform(2.8, 3.8)))
И, как вы можете видеть на графике, f_10 отображается неправильно (на самом деле вы этого не видите, потому что у меня репутация меньше 10, но поверьте мне).
Я попробовал это с форматом, как в примере, и с такой f-строкой:

Код: Выделить всё

ax[0].annotate(f"$f_{i}$", (l, np.random.uniform(2.8, 3.8)))

# or

ax[0].annotate(f"$f_{{i}}$", (l, np.random.uniform(2.8, 3.8)))
но это то же самое.
Как показать $f_10$ в аннотации?

Подробнее здесь: https://stackoverflow.com/questions/790 ... notation-o
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»