Изменение цветов линий прямоугольника

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

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

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

Введение

В этом практическом занятии мы научимся изменять цвета линий, пересекающих прямоугольник, с использованием функции .intersects_bbox из Matplotlib. Мы создадим прямоугольник и сгенерируем случайные линии, которые его пересекают. Затем мы изменим цвет пересекающихся линий на красный, а оставшиеся линии на синий.

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

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

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

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

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

Мы импортируем библиотеки matplotlib.pyplot и numpy, чтобы создать прямоугольник и сгенерировать случайные линии.

import matplotlib.pyplot as plt
import numpy as np

Настраиваем прямоугольник

Мы определим позицию и размеры прямоугольника с использованием переменных left, bottom, width и height. Затем мы создадим прямоугольник с использованием класса Rectangle и добавим его на график с использованием метода add_patch.

left, bottom, width, height = (-1, -1, 2, 2)
rect = plt.Rectangle((left, bottom), width, height,
                     facecolor="black", alpha=0.1)

fig, ax = plt.subplots()
ax.add_patch(rect)

Генерируем случайные линии

Мы сгенерируем 12 случайных линий с использованием библиотеки numpy и построим их с использованием метода plot. Если линия пересекает прямоугольник, ее цвет будет красным, в противном случае - синим. Мы будем использовать класс Path для создания линии и метод intersects_bbox для проверки, пересекает ли она прямоугольник.

bbox = Bbox.from_bounds(left, bottom, width, height)

for i in range(12):
    vertices = (np.random.random((2, 2)) - 0.5) * 6.0
    path = Path(vertices)
    if path.intersects_bbox(bbox):
        color = 'r'
    else:
        color = 'b'
    ax.plot(vertices[:, 0], vertices[:, 1], color=color)

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

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

plt.show()

Резюме

В этом практическом занятии мы узнали, как изменить цвета линий, пересекающих прямоугольник, с использованием функции .intersects_bbox из Matplotlib. Мы создали прямоугольник и сгенерировали случайные линии, которые его пересекали. Затем мы изменили цвет пересекающих линий на красный, а оставшиеся линии на синий.