sql >> Databasteknik >  >> RDS >> Mysql

Hur man uppdaterar en graf med matplotlib

Dokumentationen är lite lätt för förklaringar av hur man använder FuncAnimation. Det finns dock exempel i galleriet och bloggtutorials, som Jake Vanderplas's och Sam Dolans PDF .

Det här exemplet från Jake Vanderplas handledning är kanske "Hello World" av matplotlib-animationen:

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

Ändra olika värden eller kodrader och se vad som händer. Se vad som händer om du ändrar return [line] till något annat. Om du studerar och leker med dessa exempel kan du lära dig hur bitarna passar ihop.

När du förstår det här exemplet bör du kunna modifiera det så att det passar ditt mål.

Om du har problem, posta din kod och beskriv vilket felmeddelande eller felbeteende du ser.

Några tips:

  • Eftersom animering kräver att line.set_data anropas , jag tror inte att du kan använda Pandas df.plot() . Jag är faktiskt inte säker på om Pandas DataFrame är användbar här. Du kanske är bättre att suga in data i listor eller NumPy-matriser och skicka dem till line.set som ovan, utan att involvera Pandas.

  • Att öppna en anslutning till databasen bör göras en gång. animate blir uppringd många gånger. Så det är bättre att definiera conn och c och query -- allt som inte ändras med varje anrop till animate --utanför animate , och skicka tillbaka dem som argument till animate via fargs parameter.




  1. C# MySQL andra DataReader i DataReader medan loop

  2. Hur använder jag WebDev.WebServer.exe (VS Web Server) i x64?

  3. Återställ PostgreSQL primärnyckel till 1

  4. Hur undkommer jag ett enstaka citat i SQL Server?