You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(115) |
Aug
(120) |
Sep
(137) |
Oct
(170) |
Nov
(461) |
Dec
(263) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(120) |
Feb
(74) |
Mar
(35) |
Apr
(74) |
May
(245) |
Jun
(356) |
Jul
(240) |
Aug
(115) |
Sep
(78) |
Oct
(225) |
Nov
(98) |
Dec
(271) |
2009 |
Jan
(132) |
Feb
(84) |
Mar
(74) |
Apr
(56) |
May
(90) |
Jun
(79) |
Jul
(83) |
Aug
(296) |
Sep
(214) |
Oct
(76) |
Nov
(82) |
Dec
(66) |
2010 |
Jan
(46) |
Feb
(58) |
Mar
(51) |
Apr
(77) |
May
(58) |
Jun
(126) |
Jul
(128) |
Aug
(64) |
Sep
(50) |
Oct
(44) |
Nov
(48) |
Dec
(54) |
2011 |
Jan
(68) |
Feb
(52) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1
(3) |
2
(2) |
3
(6) |
4
(4) |
5
(1) |
6
|
7
|
8
|
9
|
10
|
11
(1) |
12
(1) |
13
(1) |
14
(4) |
15
|
16
(8) |
17
(7) |
18
(5) |
19
|
20
|
21
(2) |
22
|
23
(2) |
24
|
25
(2) |
26
(6) |
27
(3) |
28
(2) |
29
(2) |
30
(2) |
31
|
|
|
|
|
Revision: 8666 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8666&view=rev Author: ryanmay Date: 2010年08月27日 18:21:35 +0000 (2010年8月27日) Log Message: ----------- Add some TODO's and remove some debug code. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/animation.py Modified: trunk/matplotlib/lib/matplotlib/animation.py =================================================================== --- trunk/matplotlib/lib/matplotlib/animation.py 2010年08月27日 18:13:22 UTC (rev 8665) +++ trunk/matplotlib/lib/matplotlib/animation.py 2010年08月27日 18:21:35 UTC (rev 8666) @@ -8,6 +8,8 @@ # * Currently broken with Qt4 for widgets that don't start on screen # * Still a few edge cases that aren't working correctly # * Can this integrate better with existing matplotlib animation artist flag? +# - If animated removes from default draw(), perhaps we could use this to +# simplify initial draw. # * Example # * Frameless animation - pure procedural with no loop # * Need example that uses something like inotify or subprocess @@ -15,17 +17,8 @@ # * Movies # * Library to make movies? # * RC parameter for config? +# * Can blit be enabled for movies? # * Need to consider event sources to allow clicking through multiple figures -from datetime import datetime - -def traceme(func): - def wrapper(*args): - print '%s -- Calling: %s %s' % (datetime.now(), func.__name__, str(args)) - ret = func(*args) - print 'Returned: %s' % func.__name__ - return ret - return wrapper - import itertools from matplotlib.cbook import iterable @@ -117,7 +110,11 @@ # Create a new sequence of frames for saved data. This is different # from new_frame_seq() to give the ability to save 'live' generated # frame information to be saved later. + # TODO: Right now, after closing the figure, saving a movie won't + # work since GUI widgets are gone. Either need to remove extra code + # to allow for this non-existant use case or find a way to make it work. for idx,data in enumerate(self.new_saved_frame_seq()): + #TODO: Need to see if turning off blit is really necessary self._draw_next_frame(data, blit=False) fname = '%s%04d.png' % (frame_prefix, idx) fnames.append(fname) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8665 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8665&view=rev Author: ryanmay Date: 2010年08月27日 18:13:22 +0000 (2010年8月27日) Log Message: ----------- Fix some issues with saving movies from FuncAnimation. The initialization draw was putting data in the saved sequence, which needed to be removed. Also, handle the case where there is no saved sequence. Make sure to disconnect signals for first draw, otherwise saving the movie will start the animation. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/animation.py Modified: trunk/matplotlib/lib/matplotlib/animation.py =================================================================== --- trunk/matplotlib/lib/matplotlib/animation.py 2010年08月27日 07:13:14 UTC (rev 8664) +++ trunk/matplotlib/lib/matplotlib/animation.py 2010年08月27日 18:13:22 UTC (rev 8665) @@ -26,6 +26,7 @@ return ret return wrapper +import itertools from matplotlib.cbook import iterable class Animation(object): @@ -78,6 +79,7 @@ self.event_source.add_callback(self._step) self.event_source.start() self._fig.canvas.mpl_disconnect(self._first_draw_id) + self._first_draw_id = None # So we can check on save def _stop(self, *args): # On stop we disconnect all of our events. @@ -103,6 +105,14 @@ image files. This prefix will have a frame number (i.e. 0001) appended when saving individual frames. ''' + # Need to disconnect the first draw callback, since we'll be doing + # draws. Otherwise, we'll end up starting the animation. + if self._first_draw_id is not None: + self._fig.canvas.mpl_disconnect(self._first_draw_id) + reconnect_first_draw = True + else: + reconnect_first_draw = False + fnames = [] # Create a new sequence of frames for saved data. This is different # from new_frame_seq() to give the ability to save 'live' generated @@ -121,6 +131,11 @@ for fname in fnames: os.remove(fname) + # Reconnect signal for first draw if necessary + if reconnect_first_draw: + self._first_draw_id = self._fig.canvas.mpl_connect('draw_event', + self._start) + def ffmpeg_cmd(self, fname, fps, codec, frame_prefix): # Returns the command line parameters for subprocess to use # ffmpeg to create a movie @@ -401,7 +416,6 @@ # be a generator. An iterable will be used as is, and anything else # will be treated as a number of frames. if frames is None: - import itertools self._iter_gen = itertools.count elif callable(frames): self._iter_gen = frames @@ -417,17 +431,28 @@ self.save_count = 100 self._init_func = init_func - self._save_seq = [] + # Needs to be initialized so the draw functions work without checking + self._save_seq = [] + TimedAnimation.__init__(self, fig, **kwargs) + # Need to reset the saved seq, since right now it will contain data + # for a single frame from init, which is not what we want. + self._save_seq = [] + def new_frame_seq(self): # Use the generating function to generate a new frame sequence return self._iter_gen() def new_saved_frame_seq(self): - # Generate an iterator for the sequence of saved data. - return iter(self._save_seq) + # Generate an iterator for the sequence of saved data. If there are + # no saved frames, generate a new frame sequence and take the first + # save_count entries in it. + if self._save_seq: + return iter(self._save_seq) + else: + return itertools.islice(self.new_frame_seq(), self.save_count) def _init_draw(self): # Initialize the drawing either using the given init_func or by This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8664 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8664&view=rev Author: efiring Date: 2010年08月27日 07:13:14 +0000 (2010年8月27日) Log Message: ----------- backend_qt4: don't make app if ipython already made it; patch by Brian Granger Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2010年08月26日 03:49:17 UTC (rev 8663) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2010年08月27日 07:13:14 UTC (rev 8664) @@ -50,11 +50,16 @@ if QtGui.QApplication.startingUp(): if DEBUG: print "Starting up QApplication" global qApp - qApp = QtGui.QApplication( [" "] ) - QtCore.QObject.connect( qApp, QtCore.SIGNAL( "lastWindowClosed()" ), - qApp, QtCore.SLOT( "quit()" ) ) - #remember that matplotlib created the qApp - will be used by show() - _create_qApp.qAppCreatedHere = True + app = QtGui.QApplication.instance() + if app is None: + qApp = QtGui.QApplication( [" "] ) + QtCore.QObject.connect( qApp, QtCore.SIGNAL( "lastWindowClosed()" ), + qApp, QtCore.SLOT( "quit()" ) ) + #remember that matplotlib created the qApp - will be used by show() + _create_qApp.qAppCreatedHere = True + else: + qApp = app + _create_qApp.qAppCreatedHere = False _create_qApp.qAppCreatedHere = False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.