2016-09-26 2 views
0

に注釈を追加します。それぞれのimshowプロットについて、私はという値を表示したいと思います。 私はax.annotateを追加しますが、それはうまくいきません。は私がすべての私のデータと私の<em>テスト</em>リスト を生成し、ループの私の<em>I</em>値を見たいのですが、私のインタラクティブなプロット の途中に注釈を追加しようとmは、対話型のプロット

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
fig = plt.figure() # make figure 
ax = fig.add_subplot(111) 

test = [] 
mask2 = np.random.randint(255, size=(20, 20)) 

for i in range(1,5,3): 
    kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(i,i)) 
    res = (cv2.morphologyEx(mask2.astype(uint8),cv2.MORPH_OPEN,kernel)) 
    #plt.imshow(res,cmap=plt.cm.gray,alpha=1);plt.show() 
    test.append(res) 


# make axesimage object 
# the vmin and vmax here are very important to get the color map correct 
im = ax.imshow(test[0], cmap=plt.get_cmap('hot'), vmin=0, vmax=255) 
im2 = ax.annotate('This is awesome!', 
      xy=(76, -10.75), 
      xycoords='data', 
      textcoords='offset points', 
      arrowprops=dict(arrowstyle="->")) 
plt.show() 

# function to update figure 
def updatefig(j): 
    # set the data in the axesimage object 
    im.set_array(test[j]) 
    # return the artists set 
    return im, 
# kick off the animation 
ani = animation.FuncAnimation(fig, updatefig, frames=range(20), 
           interval=50, blit=True) 
plt.show() 

答えて

1

私は方法を見つけました。私は私の更新機能の中に "set_text"を追加し、私は絵とテキストを返します:

test = [] 
    test2 = [] 
    for i in range(3,27,3): 
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(i,i)) 
res = (cv2.morphologyEx(mask2,cv2.MORPH_OPEN,kernel)) 
#plt.imshow(res,cmap=plt.cm.gray,alpha=1);plt.show() 
test.append(res) 
test2.append(i) 


    fig = plt.figure() # make figure 
    ax = fig.add_subplot(111) 

    # make axesimage object 
    # the vmin and vmax here are very important to get the color map correct 
    im = ax.imshow(test[0], cmap=plt.get_cmap('hot'), vmin=0, vmax=255) 
    time_template = 'Diffusion - Kernel size : %2.2d' # prints running simulation time 
    txt = ax.text(500, 80, '', fontsize=15,color='red') 
    #plt.show() 

    # function to update figure 
    def updatefig(j): 
    # set the data in the axesimage object 
    im.set_array(test[j]) 
    txt.set_text(time_template%(float(np.asarray(test2[j])))) 
    return im,txt 

    ani = animation.FuncAnimation(fig, updatefig, frames=range(len(test)), 
       interval=100, blit=False,repeat=True) 
    plt.show() 
関連する問題

 関連する問題