Введение
В этом руководстве вы узнаете, как создать визуализацию с использованием коллекций Matplotlib. Руководство покажет, как использовать LineCollection, PolyCollection и RegularPolyCollection. Также покажется, как использовать ключевые аргументы offsets и offset_transform LineCollection и PolyCollection для установки позиций спиральных линий. Руководство также покажет, как использовать RegularPolyCollection для создания правильных многоугольников.
Советы по работе с ВМ
После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортировать необходимые библиотеки
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import collections, transforms
Первым шагом является импорт необходимых библиотек. В этом руководстве мы будем использовать Matplotlib и Numpy.
Создать спиральные линии
nverts = 50
npts = 100
## Создать несколько спиральных линий
r = np.arange(nverts)
theta = np.linspace(0, 2*np.pi, nverts)
xx = r * np.sin(theta)
yy = r * np.cos(theta)
spiral = np.column_stack([xx, yy])
Следующим шагом является создание спиральных линий с использованием Numpy. Мы будем использовать функции sin и cos для создания спиральных линий.
Создать смещения
## Фиксация случайного состояния для воспроизводимости
rs = np.random.RandomState(19680801)
## Создать некоторые смещения
xyo = rs.randn(npts, 2)
Третий шаг - создать смещения с использованием Numpy. Мы будем использовать функцию случайных чисел для создания смещений.
Создать LineCollection с использованием смещений
col = collections.LineCollection(
[spiral], offsets=xyo, offset_transform=ax1.transData)
trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0)
col.set_transform(trans)
col.set_color(colors)
ax1.add_collection(col, autolim=True)
ax1.autoscale_view()
ax1.set_title('LineCollection using offsets')
Четвёртым шагом является создание LineCollection с использованием смещений. Мы будем использовать LineCollection для создания кривых с смещениями. Также мы будем использовать offset_transform для установки позиций кривых.
Создать PolyCollection с использованием смещений
col = collections.PolyCollection(
[spiral], offsets=xyo, offset_transform=ax2.transData)
trans = transforms.Affine2D().scale(fig.dpi/72.0)
col.set_transform(trans)
col.set_color(colors)
ax2.add_collection(col, autolim=True)
ax2.autoscale_view()
ax2.set_title('PolyCollection using offsets')
Пятым шагом является создание PolyCollection с использованием смещений. Мы будем использовать PolyCollection для заливки кривых цветами. Также мы будем использовать offset_transform для установки позиций кривых.
Создать RegularPolyCollection с использованием смещений
col = collections.RegularPolyCollection(
7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData)
trans = transforms.Affine2D().scale(fig.dpi / 72.0)
col.set_transform(trans)
col.set_color(colors)
ax3.add_collection(col, autolim=True)
ax3.autoscale_view()
ax3.set_title('RegularPolyCollection using offsets')
Шестым шагом является создание RegularPolyCollection с использованием смещений. Мы будем использовать RegularPolyCollection для создания правильных многоугольников с смещениями. Также мы будем использовать offset_transform для установки позиций многоугольников.
Создать последовательные смещения данных
## Симулировать серию профилей океанических течений,
## последовательно смещенных на 0,1 м/с, чтобы они образовывали то,
## что иногда называют "водопадной" диаграммой или "стаканчиковой" диаграммой.
nverts = 60
ncurves = 20
offs = (0.1, 0.0)
yy = np.linspace(0, 2*np.pi, nverts)
ym = np.max(yy)
xx = (0.2 + (ym - yy) / ym) ** 2 * np.cos(yy - 0.4) * 0.5
segs = []
for i in range(ncurves):
xxx = xx + 0.02*rs.randn(nverts)
curve = np.column_stack([xxx, yy * 100])
segs.append(curve)
col = collections.LineCollection(segs, offsets=offs)
ax4.add_collection(col, autolim=True)
col.set_color(colors)
ax4.autoscale_view()
ax4.set_title('Successive data offsets')
ax4.set_xlabel('Zonal velocity component (m/s)')
ax4.set_ylabel('Depth (m)')
ax4.set_ylim(ax4.get_ylim()[::-1])
Седьмым шагом является создание последовательных смещений данных. Мы будем использовать LineCollection для создания кривых с последовательными смещениями.
Резюме
В этом руководстве показано, как использовать коллекции Matplotlib для создания визуализаций. Вы узнали, как использовать LineCollection, PolyCollection и RegularPolyCollection для создания кривых и многоугольников. Также вы узнали, как использовать ключевые аргументы offsets и offset_transform LineCollection и PolyCollection для установки позиций спиралей.