Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh membuat plot taburan animasi dengan perubahan warna dan saiz dinamik menggunakan perpustakaan Matplotlib Python?

Bagaimanakah saya boleh membuat plot taburan animasi dengan perubahan warna dan saiz dinamik menggunakan perpustakaan Matplotlib Python?

Barbara Streisand
Lepaskan: 2024-11-06 17:32:02
asal
528 orang telah melayarinya

How can I create animated scatter plots with dynamic color and size changes using Python's Matplotlib library?

Menghidupkan Plot Serakan dengan Warna dan Saiz Dinamik

Dalam visualisasi data, selalunya berfaedah untuk menganimasikan plot serakan untuk mendedahkan perubahan dalam data dari semasa ke semasa. Di sini, kami menunjukkan cara untuk mencipta animasi dinamik dengan mempelbagaikan warna dan saiz titik dalam plot taburan pada peringkat animasi yang berbeza.

Menggunakan tatasusunan NumPy untuk perwakilan data, di mana data.shape = (ntime, npoint), x.shape = (npoint), dan y.shape = (npoint), kita boleh membina plot serakan dengan data yang berbeza-beza:

<code class="python">pylab.scatter(x, y, c=data[i, :])</code>
Salin selepas log masuk

Untuk menghidupkan plot serakan ini, kami menumpukan pada mengubah suai plot dengan atribut berikut:

  • Kedudukan: scat.set_offsets(array)
  • Saiz: scat.set_sizes(array)
  • Warna: scat.set_array(array)

Pertimbangkan contoh berikut menggunakan modul matplotlib.animation:

<code class="python">import matplotlib.pyplot as plt
import numpy as np

class AnimatedScatter:
    def __init__(self, numpoints=50):
        # ...
        self.ani = animation.FuncAnimation(self.fig, self.update, interval=5,
                                          init_func=self.setup_plot, blit=True)

    def setup_plot(self):
        # ...
        self.scat = self.ax.scatter(x, y, c=c, s=s, vmin=0, vmax=1,
                                    cmap="jet", edgecolor="k")
        # ...
        return self.scat,

    def data_stream(self):
        # ...

    def update(self, i):
        data = next(self.stream)
        self.scat.set_offsets(data[:, :2])
        self.scat.set_sizes(300 * abs(data[:, 2])**1.5 + 100)
        self.scat.set_array(data[:, 3])
        return self.scat,</code>
Salin selepas log masuk

Contoh ini menghasilkan plot taburan dengan titik bergerak, saiz semula dan menukar warna. Ia menunjukkan cara mengubah suai atribut plot taburan dalam fungsi kemas kini animasi.

Selain itu, kami menyediakan contoh yang lebih mudah yang hanya mengemas kini warna:

<code class="python">def main():
    # ...
    fig = plt.figure()
    scat = plt.scatter(x, y, c=c, s=100)

    ani = animation.FuncAnimation(fig, update_plot, frames=range(numframes),
                                  fargs=(color_data, scat))
    plt.show()

def update_plot(i, data, scat):
    scat.set_array(data[i])
    return scat,</code>
Salin selepas log masuk

Dengan menyesuaikan fungsi kemas kini, anda boleh mencipta animasi plot taburan dinamik yang menggambarkan evolusi data dari semasa ke semasa. Teknik ini membuka kemungkinan untuk meneroka corak data yang kompleks dan menyampaikan maklumat dengan cara yang menarik secara visual.

Atas ialah kandungan terperinci Bagaimanakah saya boleh membuat plot taburan animasi dengan perubahan warna dan saiz dinamik menggunakan perpustakaan Matplotlib Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan