2016-09-19 2 views
2

Die Fenster für Shows bis Plotten aber nichts erscheint und ich bekomme diese Valueerror: x und y müssen gleiche erste DimensionMatplotlib Python Animation nicht Linie zeigt

import psutil 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

a = [i for i in range(1000)] 
ram_avaliable = [] 
fig, ax = plt.subplots() 

def update(n): 
    ram = psutil.virtual_memory() 
    ram_avaliable.append(float(ram[1])/1073741824) 
    print (a[n],ram_avaliable[n]) 
    ax.plot(a[n],ram_avaliable[n]) 

ani = animation.FuncAnimation(fig,update,interval=100) 
plt.show() 
+0

Wenn ich diesen Code ausführen, erscheint nichts im Fenster, aber Ihr Code druckt die Punkte aus und ich bekomme keine Fehler. – whrrgarbl

Antwort

0

Ihr Code als entsandte läuft ohne Fehler für mich haben. Die einzige Änderung, die ich vornehmen musste, um Punkte zu zeigen, war das Hinzufügen eines Markierungsstils zum plot Befehl.

Dies ist, weil, wenn Sie plot anrufen Sie eine neue Zeile plotten. Der Grund dafür, dass es vorher nicht angezeigt wurde, liegt darin, dass der Standardlinienstil darin besteht, Punkte mit Linien zu verbinden - da es nur einen Punkt pro gezeichneter Linie gibt, gibt es nichts, zu dem man sich verbinden kann. Das Ändern des Markierungsstils auf einen, der Punkte zeigt, behebt dies, z.

ax.plot(a[n],ram_avaliable[n], 'ro') 

bewirkt, dass Punkte in roten Kreisen dargestellt werden.