sql >> Database teknologi >  >> RDS >> Mysql

Sådan opdaterer du en graf ved hjælp af matplotlib

Dokumentationen er lidt let på forklaring af, hvordan man bruger FuncAnimation. Der er dog eksempler i galleriet og blogtutorials, såsom Jake Vanderplas's og Sam Dolans PDF .

Dette eksempel fra Jake Vanderplas's tutorial er måske "Hello World" af 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()

Skift forskellige værdier eller kodelinjer og se, hvad der sker. Se, hvad der sker, hvis du ændrer return [line] til noget andet. Hvis du studerer og leger med disse eksempler, kan du lære, hvordan brikkerne passer sammen.

Når du forstår dette eksempel, bør du være i stand til at ændre det, så det passer til dit mål.

Hvis du har problemer, så send din kode og beskriv hvilken fejlmeddelelse eller forkert opførsel du ser.

Nogle tips:

  • Da animation kræver opkald til line.set_data , jeg tror ikke, du kan bruge Pandas' df.plot() . Faktisk er jeg ikke sikker på, om Pandas DataFrame er nyttig her. Du kan være bedre stillet ved at suge dataene ind i lister eller NumPy-arrays og overføre dem til line.set som ovenfor, uden at involvere Pandas.

  • Åbning af en forbindelse til databasen skal ske én gang. animate bliver ringet op mange gange. Så det er bedre at definere conn og c og query -- alt, der ikke ændres med hvert kald til animate --uden for animate , og send dem tilbage som argumenter til animate via fargs parameter.




  1. Er der en måde at indstille en udløbstid, hvorefter en dataindtastning automatisk slettes i PostgreSQL?

  2. opdateringskommando afvises for brugeren

  3. Hvordan kan jeg gendanne MySQL root-brugerens fulde privilegier?

  4. skinner 3; aktiv rekord; hvor; NOT EQUAL-tilstandssammenligning mellem to kolonner i databasen