Справочник по стилям штриховки

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

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

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

Введение

В этом практическом занятии вы научитесь добавлять штриховку к большинству многоугольников в Matplotlib, включая Axes.bar, Axes.fill_between, Axes.contourf и дочерние элементы patches.Polygon. Вы узнаете, как создавать разные штриховочные паттерны, повторять их, чтобы увеличить плотность, и комбинировать их, чтобы создать дополнительные паттерны.

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

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

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

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

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

Для использования Matplotlib необходимо импортировать библиотеку и необходимые модули. Мы будем использовать модуль pyplot для создания подграфиков и модуль patches для создания объекта Rectangle.

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

Создаем функцию hatches_plot

Функция hatches_plot создаст прямоугольник с указанным штриховочным паттерном и добавит его на ось. Также она добавит текст с штриховочным паттерном.

def hatches_plot(ax, h):
    ax.add_patch(Rectangle((0, 0), 2, 2, fill=False, hatch=h))
    ax.text(1, -0.5, f"' {h} '", size=15, ha="center")
    ax.axis('equal')
    ax.axis('off')

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

Мы создадим три группы подграфиков с разными штриховочными паттернами.

fig, axs = plt.subplots(2, 5, layout='constrained', figsize=(6.4, 3.2))

Создаем первую группу штриховочных паттернов

Мы создадим первую группу штриховочных паттернов с использованием следующего списка:

hatches = ['/', '\\', '|', '-', '+', 'x', 'o', 'O', '.', '*']

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

for ax, h in zip(axs.flat, hatches):
    hatches_plot(ax, h)

Создаем вторую группу штриховочных паттернов

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

hatches = ['//', '\\\\', '||', '--', '++', 'xx', 'oo', 'OO', '..', '**']

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

for ax, h in zip(axs.flat, hatches):
    hatches_plot(ax, h)

Создаем третью группу штриховочных паттернов

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

hatches = ['/o', '\\|', '|*', '-\\', '+o', 'x*', 'o-', 'O|', 'O.', '*-']

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

for ax, h in zip(axs.flat, hatches):
    hatches_plot(ax, h)

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

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

plt.show()

Резюме

В этом практическом занятии вы узнали, как добавлять штриховку к большинству полигонов в Matplotlib, включая Axes.bar, Axes.fill_between, Axes.contourf и дочерние элементы patches.Polygon. Вы узнали, как создавать разные штриховочные паттерны, повторять их, чтобы увеличить плотность, и комбинировать их, чтобы создать дополнительные паттерны. Также вы узнали, как использовать функцию add_patch() для добавления объекта Rectangle на ось и как использовать функцию text() для добавления текста на график.