Анимация графиков в Python

Feb 24 2023
В этой статье я покажу вам, как анимировать графики в Python с помощью Matplotlib, чтобы вы могли добавить приятные штрихи к своим визуализациям! Matplotlib Matplotlib — это пакет для построения графиков для языка программирования Python. Это один из самых популярных пакетов для визуализации на Python, который предоставляет пользователям возможность создавать двухмерные, трехмерные и даже анимированные графики.

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

Логотип Matplotlib

Матплотлиб

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

Базовый двухмерный анимированный сюжет

#Empty lists for X/Y data
x = []
y = []

#Create a figure and axis to plot on
fig, ax = plt.subplots()


#We will create a function that will be called by Matplotlib's FuncAnimation
def getAnimation(iterator):
    newInt = random.randint(1,10)
    #Append values to our lists
    x.append(iterator)
    y.append(newInt)
    
    #Clear previous data from the plot
    ax.clear()
    #Plot the lists with axis limits
    ax.plot(x, y)
    ax.set_xlim([0,20])
    ax.set_ylim([0,20])
    
    
#We pass FuncAnimation our getAnimation function so that it is called in a loop
animation = FuncAnimation(fig, getAnimation, frames=20, 
            interval=500, repeat=False)

plt.show()

Для функции FuncAnimation() , предоставляемой через Matplotlib, требуется фигура и функция, которая будет выполняться в цикле с некоторым количеством кадров. Передавая getAnimation() в качестве аргумента, мы, по сути, создаем слайд-шоу из графиков, которые объединяются в анимацию, зацикливающуюся на несколько кадров . Это результат нашего кода…

Базовая анимация, построение случайных значений y для каждого значения x

Случайная трехмерная анимация ходьбы

#Empty lists for X/Y/Z data
x = []
y = []
z = []

#Lets start off at (10,10,10) the center of our figure with axis limits 20
x.append(10)
y.append(10)
z.append(10)

#Total number of steps we will take
stepTotal = 20

#Create a figure and axis to plot on (3-D)
fig = plt.figure()
ax = fig.add_subplot(projection="3d")

#We will create a function that will be called by Matplotlib's FuncAnimation
def randomWalk(step):
    
    #Append values to our lists
    x.append(random.uniform(1,10))
    y.append(random.uniform(1,10))
    z.append(random.uniform(1,10))
    
    #Clear previous data from the plot
    ax.clear()
    #Plot the lists with axis limits
    ax.plot(x, y, z)
    ax.set_xlim([0,20])
    ax.set_ylim([0,20])
    ax.set_zlim([0,20])
    

# Creating the Animation object
animation = FuncAnimation(fig, randomWalk, frames=stepTotal, interval=100)

plt.show()

Случайное блуждание в трехмерном пространстве.

Сохранение анимации


#FuncAnimation() returns an animation object that can be stored
animation = FuncAnimation()

#Instantiate the directory you wish to save to
directory = "/medium/animation.gif"

#We call .save() on our animation object and pass the function a directory
animation.save(directory)

Весь код этой статьи можно найти на моем Github .

Если вы нашли эту статью на Medium интересной, рассмотрите возможность подписаться на меня! Я пишу о математике, информатике и обо всем, что между ними!