Matplotlib pyplot show() doesn't work once closed

前端 未结 4 841
迷失自我
迷失自我 2020-12-31 20:06

I have a loop like this

#!/usr/bin/env python
import matplotlib.pyplot as p

for i in xrange(N):
    # Create my_image here

    # Display this image
    p.fi         


        
4条回答
  •  不思量自难忘°
    2020-12-31 20:38

    There might be a better way to animate imshow's, but this should work in a pinch. It's a lightly modified version of an animation example from the docs.

    # For detailed comments on animation and the techniqes used here, see
    # the wiki entry http://www.scipy.org/Cookbook/Matplotlib/Animations
    
    import matplotlib
    matplotlib.use('TkAgg')
    
    import matplotlib.pyplot as plt
    import matplotlib.mlab as mlab
    import matplotlib.cm as cm
    
    import sys
    import numpy as np
    import time
    
    ax = plt.subplot(111)
    canvas = ax.figure.canvas
    
    delta=0.025
    x=y= np.arange(-3.0, 3.0, delta)
    x,y=np.meshgrid(x, y)
    z1=mlab.bivariate_normal(x, y, 1.0, 1.0, 0.0, 0.0)
    z2=mlab.bivariate_normal(x, y, 1.5, 0.5, 1, 1)
    z=z2-z1  # difference of Gaussians
    
    def run(z):
        fig=plt.gcf()
        for i in range(10):
            plt.imshow(z, interpolation='bilinear', cmap=cm.gray,
                      origin='lower', extent=[-3,3,-3,3])
            canvas.draw()
            plt.clf()
            z**=2
    
    manager = plt.get_current_fig_manager()
    manager.window.after(100, run, z)
    plt.show()
    

提交回复
热议问题