Сравнение базовых линий текста

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном задании мы сравним вычисленные для mathtext и usetex базовые линии текста с использованием библиотеки Matplotlib. Мы создадим график, содержащий два подграфика, один с mathtext, а другой с usetex. Каждый подграфик будет отображать четыре тестовые строки с разными стилями и положениями.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые библиотеки

Для создания графика нам необходимо импортировать библиотеку matplotlib.pyplot.

import matplotlib.pyplot as plt

Задаем шрифт Matplotlib

Нам необходимо задать шрифт, который будет использоваться для текста Matplotlib. Мы будем использовать шрифт Computer Modern и установить его в качестве стандартного шрифта для Matplotlib.

plt.rcParams.update({"mathtext.fontset": "cm", "mathtext.rm": "serif"})

Создаем подграфики

Мы создадим фигуру, содержащую два подграфика, один с mathtext, а другой с usetex. Мы будем использовать метод subplots() для создания подграфиков.

fig, axs = plt.subplots(1, 2, figsize=(2 * 3, 6.5))

Добавляем тестовые строки на график

Мы добавим четыре тестовые строки в каждый подграфик, каждая с разным стилем и позицией. Мы будем использовать метод text() для добавления текста в подграфики.

test_strings = ["lg", r"$\frac{1}{2}\pi$", r"$p^{3^A}$", r"$p_{3_2}$"]
for ax, usetex in zip(axs, [False, True]):
    ax.axvline(0, color="r")
    for i, s in enumerate(test_strings):
        ax.axhline(i, color="r")
        ax.text(0., 3 - i, s,
                usetex=usetex,
                verticalalignment="baseline",
                size=50,
                bbox=dict(pad=0, ec="k", fc="none"))

Задаем пределы и метки графика

Мы зададим пределы и метки графика, чтобы соответствовать требуемому выводу.

for ax in axs:
    ax.set(xlim=(-0.1, 1.1), ylim=(-.8, 3.9), xticks=[], yticks=[])
    ax.set_title(f"usetex={ax.usetex}\n")

Отображаем график

Мы будем отображать график с использованием метода show().

plt.show()

Резюме

В этом практическом занятии мы узнали, как сравнивать базовые линии текста, вычисленные для mathtext и usetex с использованием Matplotlib. Мы создали график, содержащий два подграфика, один с mathtext, а другой с usetex. Мы добавили четыре тестовые строки в каждый подграфик, каждая с разным стилем и позицией. Наконец, мы отобразили график, чтобы сравнить базовые линии текста.