Animowanie działek w Pythonie

Feb 24 2023
W tym artykule pokażę, jak animować wykresy w Pythonie za pomocą Matplotlib, abyś mógł dodać miły akcent do swoich wizualizacji! Matplotlib Matplotlib to pakiet do kreślenia dla języka programowania Python. Jest to jeden z najpopularniejszych pakietów do wizualizacji w Pythonie i zapewnia użytkownikom możliwość tworzenia wykresów 2-D, 3-D, a nawet animowanych.

W tym artykule pokażę, jak animować wykresy w Pythonie za pomocą Matplotlib , abyś mógł dodać miły akcent do swoich wizualizacji!

Logo Matplotlib

Matplotlib

Matplotlib to pakiet do kreślenia dla języka programowania Python. Jest to jeden z najpopularniejszych pakietów do wizualizacji w Pythonie i zapewnia użytkownikom możliwość tworzenia wykresów 2-D, 3-D, a nawet animowanych. Matplotlib zapewnia szereg konfigurowalnych opcji tworzenia wykresów, w tym wykresów liniowych, wykresów punktowych, wykresów słupkowych i histogramów. Ponieważ wiele osób jest już zaznajomionych z używaniem Matplotlib do statycznych wizualizacji, omówię jego zastosowanie do animowanych wykresów. Dla tych, którzy mogą być nowi w Matplotlib, ale są już zaznajomieni z Pythonem, oto świetne źródło informacji, które pomogą Ci rozpocząć pracę z pakietem.

Podstawowa animowana fabuła 2D

#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()

Funkcja FuncAnimation() udostępniana przez Matplotlib wymaga figury i funkcji, które będą uruchamiane w pętli z pewną liczbą klatek. Przekazując getAnimation() jako argument, zasadniczo tworzymy pokaz slajdów z działek, które łączą się, tworząc animację, zapętlając liczbę klatek . Oto wynik naszego kodu…

Podstawowa animacja, wykreślanie losowych wartości y dla każdej wartości x

Losowa animacja spaceru w 3D

#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()

Spacer losowy w przestrzeni 3D.

Zapisywanie animacji


#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)

Cały kod w tym artykule można znaleźć na moim Githubie .

Jeśli ten artykuł w Medium był dla Ciebie interesujący, rozważ obserwowanie mnie! Piszę o matematyce, informatyce i wszystkim pomiędzy!