Ich kann anscheinend keine TimedAnimation
Animation eines Bildes erhalten, um irgendetwas anzuzeigen, wenn alle Einträge im ursprünglichen Bild den gleichen Wert enthalten. Zum Beispiel zeigt das Folgende nichts an, wenn die angezeigte Zeile auskommentiert bleibt. Das Ändern des ersten Rahmens, der np.ones(self.shape)
enthält, hat ebenfalls keine Auswirkung.matplotlib Bildanimation wird nicht angezeigt, wenn alle Einträge im ersten Bild identisch sind
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as anim
class MyAnimation(anim.TimedAnimation):
def __init__(self):
fig = plt.figure()
self.shape = (10, 10)
data = np.zeros(self.shape)
# data.flat[0] = 1 # uncomment this to get the animation to display
self.ax = plt.imshow(data)
super(self.__class__, self).__init__(fig, interval=50, blit=True)
def _draw_frame(self, framedata):
data = np.random.rand(*self.shape)
self.ax.set_data(data)
def new_frame_seq(self):
return iter(range(100))
ani = MyAnimation()
Blitting ausschalten scheint keine Wirkung zu haben. Das Ändern des Backends scheint auch keinen Unterschied zu machen; Ich habe Qt4Agg und nbagg (letzteres über Jupyter Notebook 4.1.0) mit den gleichen Ergebnissen ausprobiert. Ich benutze numpy 1.10.4 und matplotlib 1.5.1 mit Python 2.7.11.
Wird das obige Verhalten erwartet? Wenn nicht, sollte ich etwas tun, damit die Animation angezeigt wird, wenn das erste Bild ein leeres oder ein Vollbild ist?
funktioniert es, wenn Sie 'vmin' und' vmax' explizit an 'imshow' übergeben? – tacaswell