Динамическая гистограмма с использованием Matplotlib

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

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

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

Введение

В этом практическом занятии вы научитесь создавать анимированный гистограмму с использованием 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. Вы начали с импорта необходимых библиотек, установки случайного зерна и интервалов, создания данных и гистограммы, создания функции анимации и, наконец, создания контейнера для столбцов и анимации. Следуя этим шагам, вы можете создавать анимированные гистограммы для динамического визуализации данных.