SourceForge logo
SourceForge logo
Menu

matplotlib-checkins — Commit notification. DO NOT POST to this list, just subscribe to it.

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




Showing 3 results of 3

From: <ry...@us...> - 2010年08月27日 18:21:41
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.
From: <ry...@us...> - 2010年08月27日 18:13:28
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.

Showing 3 results of 3

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /