Использование AnimatPlot для анимации графиков и графиков

Визуализация данных помогает понять различные закономерности, ассоциации, визуальное представление данных и т. Д. Это важно, поскольку раскрывает тайну таблиц данных в форме диаграмм, графиков и графиков. Существует N библиотек Python, которые помогают визуализировать данные, такие как Matplotlib, Seaborn и т. Д.

Что, если я скажу вам, что вы можете анимировать свои визуализации? Довольно интересно! Как будет круто, если ты сможешь это сделать. Давайте разгадываем загадку этого и узнаем, как можно оживить наши обычные сюжеты.

AnimatPlot - это библиотека Python с открытым исходным кодом, которая построена на основе Matplotlib и используется для создания интерактивных анимированных графиков. В этой статье мы рассмотрим некоторые функции, которые предоставляет AnimatPlot.

Давайте начнем…

Установка необходимых библиотек

Начнем с установки AnimatPlot с помощью pip. Команда, приведенная ниже, сделает это.

!pip install animatplot

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

На этом этапе мы импортируем необходимые библиотеки для создания анимированных графиков.

%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
import animatplot as amp

Создание набора данных

Созданный здесь набор данных создаст синусоидальную волну, а затем мы анимируем эту синусоидальную волну. Точно так же мы также создадим еще один набор данных для отображения нескольких графиков на одном графике.

x = np.linspace(0, 1, 50)
t = np.linspace(0, 1, 20)

X, T = np.meshgrid(x, t)
Y = np.sin(2*np.pi*(X+T))

Создание анимированного сюжета

Это последний шаг, на котором мы создадим сюжет и анимируем его.

block = amp.blocks.Line(X, Y)
anim = amp.Animation([block])
plt.show()

Теперь мы добавим элементы управления к сюжету.

timeline = amp.Timeline(t, units='s', fps=20)
block = amp.blocks.Line(X, Y)
anim = amp.Animation([block], timeline) 
anim.controls()
plt.show()

Точно так же теперь мы добавим больше данных и создадим несколько графиков на одной диаграмме.

x = np.linspace(-2, 2, 41)
y = np.linspace(-2, 2, 41)
t = np.linspace(0, 2*np.pi, 30)
X, Y, T = np.meshgrid(x, y, t)
data = np.sin(X*X+Y*Y-T)
line_data = data[20,:,:] 
fig, (ax1, ax2) = plt.subplots(1, 2)
for ax in [ax1, ax2]:
    ax.set_aspect('equal')
    ax.set_xlabel('x')
ax2.set_ylabel('y', labelpad=-5)
ax1.set_ylabel('z')
ax1.set_ylim([-1.1,1.1])
fig.suptitle('Multiple blocks')
ax1.set_title('Cross Section: $y=0$')
ax2.set_title(r'$z=\sin(x^2+y^2-t)$')
line_block = amp.blocks.Line(X[0,:,:], line_data,
                                   ax=ax1, t_axis=1)
block = amp.blocks.Pcolormesh(X[:,:,0], Y[:,:,0], data, ax=ax2, t_axis=2, vmin=-1, vmax=1)
plt.colorbar(block.quad)
timeline = amp.Timeline(t, fps=10)
anim = amp.Animation([block, line_block], timeline)
anim.controls()
plt.show()

Здесь вы можете увидеть, как мы создавали анимированные сюжеты и добавляли к ним взаимодействие.

Давайте попробуем это с разными данными и создадим анимированную визуализацию. Если у вас возникнут трудности, дайте мне знать в разделе ответов.

Эта статья написана в сотрудничестве с Пиюшем Ингале.

Прежде чем ты уйдешь

Спасибо за чтение! Если вы хотите связаться со мной, свяжитесь со мной по адресу [email protected] или в моем профиле LinkedIn. Вы можете просмотреть мой профиль Github для различных проектов по науке о данных и руководств по пакетам. Кроме того, не стесняйтесь изучать мой профиль и читать разные мои статьи, связанные с наукой о данных.