Animasi Plot dengan Python

Feb 24 2023
Pada artikel ini, saya akan menunjukkan cara menganimasikan plot dengan Python menggunakan Matplotlib, sehingga Anda dapat menambahkan sentuhan yang bagus pada visualisasi Anda! Matplotlib Matplotlib adalah paket plot untuk bahasa pemrograman Python. Ini adalah salah satu paket paling populer untuk visualisasi dengan Python dan memberi pengguna kemampuan untuk membuat plot 2-D, 3-D, dan bahkan animasi.

Pada artikel ini, saya akan menunjukkan cara menganimasikan plot dengan Python menggunakan Matplotlib , sehingga Anda dapat menambahkan sentuhan yang bagus pada visualisasi Anda!

Matplotlib Logo

Matplotlib

Matplotlib adalah paket plotting untuk bahasa pemrograman Python. Ini adalah salah satu paket paling populer untuk visualisasi dengan Python dan memberi pengguna kemampuan untuk membuat plot 2-D, 3-D, dan bahkan animasi. Matplotlib menyediakan berbagai opsi yang dapat disesuaikan untuk membuat plot, termasuk plot garis, plot sebar, bagan batang, dan histogram. Karena banyak orang sudah terbiasa menggunakan Matplotlib untuk visualisasi statis, saya akan membahas penggunaannya untuk plot animasi. Bagi mereka yang mungkin baru mengenal Matplotlib, tetapi sudah terbiasa dengan Python, berikut adalah sumber yang bagus untuk membantu Anda memulai paket.

Plot Animasi 2-D Dasar

#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() yang disediakan melalui Matplotlib membutuhkan figur dan fungsi yang akan dijalankan dalam satu lingkaran dengan sejumlah bingkai. Dengan meneruskan getAnimation() sebagai argumen, pada dasarnya kita membuat tayangan slide plot yang digabungkan untuk membentuk animasi, berulang kali untuk bingkai . Ini adalah hasil dari kode kita…

Animasi dasar, memplot nilai y acak untuk setiap nilai x

Animasi Jalan 3-D Acak

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

Jalan acak dalam ruang 3-D.

Menyimpan Animasi


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

Semua kode dalam artikel ini dapat ditemukan di Github saya .

Jika menurut Anda artikel Medium ini menarik, pertimbangkan untuk mengikuti saya! Saya menulis tentang Matematika, Ilmu Komputer, dan segala sesuatu di antaranya!