Введение
В этом практическом занятии вы научитесь создавать анимированный гистограмму с использованием Matplotlib в Python. Анимированная гистограмма будет имитировать поступление новых данных и обновлять высоты прямоугольников новыми данными.
Советы по работе с ВМ
После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике в Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импорт библиотек
Во - первых, нам нужно импортировать необходимые библиотеки.
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
Задайте случайный сид и интервалы
Установите случайный сид для воспроизводимости и задайте края интервалов.
## Fixing random state for reproducibility
np.random.seed(19680801)
## Fixing bin edges
HIST_BINS = np.linspace(-4, 4, 100)
Создайте данные и гистограмму
Создайте данные и гистограмму с использованием NumPy.
## histogram our data with numpy
data = np.random.randn(1000)
n, _, _ = plt.hist(data, HIST_BINS, lw=1, ec="yellow", fc="green", alpha=0.5)
Создайте функцию для анимации
Нам нужно создать функцию animate, которая генерирует новые случайные данные и обновляет высоты прямоугольников.
def animate(frame_number):
## simulate new data coming in
data = np.random.randn(1000)
n, _ = np.histogram(data, HIST_BINS)
for count, rect in zip(n, bar_container.patches):
rect.set_height(count)
return bar_container.patches
Создайте контейнер для столбцов и анимацию
Использование plt.hist позволяет получить экземпляр BarContainer, который представляет собой коллекцию экземпляров Rectangle. Мы используем FuncAnimation для настройки анимации.
## Using plt.hist allows us to get an instance of BarContainer, which is a
## collection of Rectangle instances. Calling prepare_animation will define
## animate function working with supplied BarContainer, all this is used to setup FuncAnimation.
fig, ax = plt.subplots()
_, _, bar_container = ax.hist(data, HIST_BINS, lw=1, ec="yellow", fc="green", alpha=0.5)
ax.set_ylim(top=55) ## set safe limit to ensure that all data is visible.
ani = animation.FuncAnimation(fig, animate, 50, repeat=False, blit=True)
plt.show()
Резюме
В этом практическом занятии вы узнали, как создавать анимированную гистограмму с использованием Matplotlib в Python. Вы начали с импорта необходимых библиотек, установки случайного зерна и интервалов, создания данных и гистограммы, создания функции анимации и, наконец, создания контейнера для столбцов и анимации. Следуя этим шагам, вы можете создавать анимированные гистограммы для динамического визуализации данных.