Error with saving animation

Partha Pratim Ghosh ghosh.parthapratim.ukzn at gmail.com
Sat Oct 11 00:55:19 EDT 2014


Dear All,

   I am having a problem with saving the output of an animation as a file. I
provide here two listing, first the small program which otherwise works
well, except while executing the last few lines to save the output produces
error which I also provide:

1. the program test.py :

from matplotlib import animation as anim
from matplotlib import pyplot as plt
import numpy as np


fig = plt.figure()          
plt.axis([-1,1,-1,1])       
abcissa, = plt.plot([],[], color='black')
                            
graph, = plt.plot([], [], color='blue')
                            
t, = plt.plot([],[], color='red')

def init():
    ''' set the basic graph and put slate clean for blit'''
    x = np.arange(-1,1,0.01)# the x-values
    y = np.sin(np.pi/2 * x)

    abcissa.set_data(x, 0)  
    graph.set_data(x, y)    

    return abcissa, graph

def animate(i):
    p = -1 + i*0.02   
    tx = [p-1,p+1]
    ty = [np.sin(np.pi/2 * p) - np.pi/2 * np.cos(np.pi/2 *p),
          np.sin(np.pi/2 * p) + np.pi/2 * np.cos(np.pi/2 *p)]
    t.set_data(tx, ty)

    return t,
    
    

ani = anim.FuncAnimation(fig, animate, init_func=init,
                         frames=100, interval=30, blit=True)


plt.show()
Writer = anim.writers['ffmpeg']
writer = Writer(fps=15, bitrate=1800)

ani.save('test.mp4', writer=writer)

2. Error output

    ani.save('test.mp4', writer=writer)
  File "/usr/lib/python3/dist-packages/matplotlib/animation.py", line 719,
in save
    writer.grab_frame(**savefig_kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/animation.py", line 205,
in grab_frame
    dpi=self.dpi, **savefig_kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/figure.py", line 1422, in
savefig
    self.canvas.print_figure(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/backend_bases.py", line
2225, in print_figure
    self.figure.dpi = origDPI
  File "/usr/lib/python3/dist-packages/matplotlib/figure.py", line 385, in
_set_dpi
    self.dpi_scale_trans.clear().scale(dpi, dpi)
  File "/usr/lib/python3/dist-packages/matplotlib/transforms.py", line 1786,
in clear
    self._mtx = np.identity(3)
  File "/usr/lib/python3/dist-packages/numpy/core/numeric.py", line 2053, in
identity
    from numpy import eye
  File "<frozen importlib._bootstrap>", line 2280, in _handle_fromlist
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0:
invalid start byte
'
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.4/idlelib/run.py", line 121, in main
    seq, request = rpc.request_queue.get(block=True, timeout=0.05)
  File "/usr/lib/python3.4/queue.py", line 175, in get
    raise Empty
queue.Empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/matplotlib/backends/tkagg.py", line
13, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode,
id(bbox_array))
_tkinter.TclError: this isn't a Tk application

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/__init__.py", line 1536, in __call__
    return self.func(*args)
  File "/usr/lib/python3.4/tkinter/__init__.py", line 585, in callit
    func(*args)
  File
"/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line
363, in idle_draw
    self.draw()
  File
"/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line
349, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
  File "/usr/lib/python3/dist-packages/matplotlib/backends/tkagg.py", line
20, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode,
id(bbox_array))
_tkinter.TclError: this isn't a Tk application


Please can someone help me out of this problem.

With my regards,

partha




More information about the Python-list mailing list