Bir görüntü analizi üzerinde çalışıyorum ve 2B verilerinin zaman dizisini ve tek bir pikselde zaman dizilerinin bir grafiğini içeren son sonuçların bir animasyonunu oluşturmak istiyorum. 2D animasyon ilerledikçe 1D çizim güncellemeleri. Sonra bunları bir alt-çizimde yan yana ayarlayın. Aşağıdaki linkte, ideal olarak canlandırılacak olan bir sonuç görüntüsü bulunur.Altpipler ve ArtistAnimation ile matplotlib kullanılarak animasyon
bir hata almaya devam: AttributeError: 'Liste' nesne 'set_visible' hayır özelliği vardır. Ben (sizin yaptığınız gibi) googled ve bir adam ördek set_visible özniteliği ayarlamak için kod yumruklar nerede http://matplotlib.1069221.n5.nabble.com/Matplotlib-1-1-0-animation-vs-contour-plots-td18703.html tökezledi. Ne yazık ki, çizim komutu böyle bir özelliğe sahip gibi görünmüyor, bu yüzden animasyonu nasıl üretebileceğime dair bir kayıp yaşıyorum. Aşağıda belirtilen minimum çalışma örneğinde maymun yama ekledim (yorumda bulundu) ve aynı zamanda kod çalıştırmaya çalışan herkes için çalışması gereken ikinci bir 'im2'. Açıkçası size iki 2D çizim animasyonları verecektir. Herkes piksele bir çizgi çizin da 1D veriler elde olan pikseli vurgulamak veya serin şekilde tanıyıp tanımadığı için
#!/usr/bin/env python
import matplotlib.pyplot as plt
import matplotlib.animation as anim
import numpy as np
import types
#create image with format (time,x,y)
image = np.random.rand(10,10,10)
image2 = np.random.rand(10,10,10)
#setup figure
fig = plt.figure()
ax1=fig.add_subplot(1,2,1)
ax2=fig.add_subplot(1,2,2)
#set up list of images for animation
ims=[]
for time in xrange(np.shape(image)[1]):
im = ax1.imshow(image[time,:,:])
# im2 = ax2.imshow(image2[time,:,:])
im2 = ax2.plot(image[0:time,5,5])
# def setvisible(self,vis):
# for c in self.collections: c.set_visible(vis)
# im2.set_visible = types.MethodType(setvisible,im2,None)
# im2.axes = plt.gca()
ims.append([im, im2])
#run animation
ani = anim.ArtistAnimation(fig,ims, interval=50,blit=False)
plt.show()
Ayrıca meraklı aşağıdaki gibidir: En az bir çalışma örneği en sağdaki subplot, böylece bir şekilde 'birbirine' bağlanırlar. Adrian
Rastgele ipucu, iki satırdan tasarruf için 'fig, (ax1, ax2) = plt.subplots (1, 2)' yi kullanabilirsiniz. – Mark