Nano Hash - криптовалюты, майнинг, программирование

Метки LaTeX в matplotlib не согласованы [дубликаты]

Я пытаюсь использовать метки LaTeX в графиках matplotlib, но они компилируются непоследовательно. На скриншоте ниже вы видите, что не только метки осей, но и не все x- и y-галочки рендерятся в LaTeX.

Сюжет Python с латексными метками

MWE для приведенного выше графика определяется как

#!/usr/bin/python3

import matplotlib.pyplot as plt

fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# FONT
plt.rc('text', usetex=True)
plt.rc('font', family='serif')

plt.xlabel(r'$y$', fontsize=18)
plt.ylabel(r'$x$',fontsize=18)

# PLOT
axes.plot([1,2,3], [1,4,9], label=r'$x^2$')

# LEGEND
axes.legend(numpoints=1, loc=1, prop={'size':15})

plt.show()

Я попробовал это в системе Debian и macOS с установленным TeX Live 2018.

Как сделать так, чтобы все метки последовательно отображались в LaTeX?

(Примечание: в конце концов я хочу использовать Фурье в качестве математического шрифта и ebgaramond в качестве текстового шрифта)

08.05.2019

Ответы:


1

Я имею отношение к порядку, в котором вы делаете вещи. Вы захотите указать rc-параметры перед созданием фигуры:

import matplotlib.pyplot as plt

plt.rc('text', usetex=True)
plt.rc('font', family='serif')

fig, ax = plt.subplots()

ax.set_xlabel(r'$y$', fontsize=18)
ax.set_ylabel(r'$x$', fontsize=18)

ax.plot([1,2,3], [1,4,9], label=r'$x^2$')

ax.legend(numpoints=1, loc=1, prop={'size':15})

plt.show()

Это делает то, что вы намеревались:

введите здесь описание изображения

Обратите внимание, что я изменил создание фигуры, так как ваша ось была слишком мала для отображения метки.

08.05.2019
  • Спасибо! Забавно, однако, что некоторые этикетки вообще отрисовывались как LaTeX. Вы знаете, почему это так? 08.05.2019
  • Я согласен, что это немного озадачивает. Я думаю, это зависит от того, когда что рендерится. Но как это приводит к именно тому поведению, о котором вы говорите, я не могу сказать, поскольку мне не хватает знаний об основной структуре библиотеки. 08.05.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..