sql >> Databáze >  >> RDS >> Mysql

Jak aktualizovat graf pomocí matplotlib

Dokumentace je trochu lehká na vysvětlení, jak používatFuncAnimation. Existují však příklady v galerii a blogové výukové programy, jako je Jake Vanderplas a PDF Sama Dolana .

Tento příklad z tutoriálu Jakea Vanderplase je možná animace „Hello World“ z matplotlib:

from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def init():
    return [line]

def animate(i, ax, line):
    x = np.linspace(0, 2*np.pi, N) + i/(N*2)
    ax.set_xlim(x.min(), x.max())
    line.set_data(x, np.sin(x))
    return [line]

N = 100
fig, ax = plt.subplots()
line, = ax.plot([], [])
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)

ani = animation.FuncAnimation(
    fig, animate, init_func=init, interval=0, frames=int(4*np.pi*N), 
    repeat=True, blit=True, fargs=[ax, line])
plt.show()

Změňte různé hodnoty nebo řádky kódu a uvidíte, co se stane. Podívejte se, co se stane, když změníte return [line] na něco jiného. Pokud budete studovat a hrát si s těmito příklady, můžete se naučit, jak do sebe jednotlivé části zapadají.

Jakmile pochopíte tento příklad, měli byste být schopni jej upravit tak, aby odpovídal vašemu cíli.

Pokud máte potíže, zveřejněte svůj kód a popište, jakou chybovou zprávu nebo chybné chování vidíte.

Několik tipů:

  • Protože animace vyžaduje volání line.set_data , Nemyslím si, že můžete použít Pandas' df.plot() . Ve skutečnosti si nejsem jistý, zda je zde Pandas DataFrame užitečný. Možná by bylo lepší nasát data do seznamů nebo polí NumPy a předat je do line.set jak je uvedeno výše, aniž by do toho byly zapojeny pandy.

  • Otevření připojení k databázi by mělo být provedeno jednou. animate je volán mnohokrát. Je tedy lepší definovat conn a c a query -- cokoli, co se nemění s každým voláním animate --mimo animate a předat je zpět jako argumenty do animate přes fargs parametr.




  1. Uživatelská oprávnění PostgreSQL

  2. Cizí klíče, blokování a konflikty aktualizací

  3. Proč SQL Server automaticky ignoruje prázdné místo na konci?

  4. Enterprise Architect - Poskytovatel Microsoft OLE DB pro ovladače ODBC -2147217900 / '80040E14'