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
|
|
From: <ry...@us...> - 2008-07-25 01:43:45
|
Revision: 5861
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5861&view=rev
Author: ryanmay
Date: 2008-07-25 01:43:43 +0000 (Fri, 25 Jul 2008)
Log Message:
-----------
Add support for flipping which side of the barb the features are drawn. Useful to the meteorologists in the southern hemisphere plus anyone who might have an aesthetic preference.
Modified Paths:
--------------
trunk/matplotlib/examples/pylab_examples/barb_demo.py
trunk/matplotlib/lib/matplotlib/quiver.py
Modified: trunk/matplotlib/examples/pylab_examples/barb_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/barb_demo.py 2008-07-24 22:50:41 UTC (rev 5860)
+++ trunk/matplotlib/examples/pylab_examples/barb_demo.py 2008-07-25 01:43:43 UTC (rev 5861)
@@ -36,6 +36,7 @@
#Change colors as well as the increments for parts of the barbs
ax = plt.subplot(2,2,4)
ax.barbs(data['x'], data['y'], data['u'], data['v'], flagcolor='r',
- barbcolor=['b','g'], barb_increments=dict(half=10, full=20, flag=100))
+ barbcolor=['b','g'], barb_increments=dict(half=10, full=20, flag=100),
+ flip_barb=True)
plt.show()
Modified: trunk/matplotlib/lib/matplotlib/quiver.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/quiver.py 2008-07-24 22:50:41 UTC (rev 5860)
+++ trunk/matplotlib/lib/matplotlib/quiver.py 2008-07-25 01:43:43 UTC (rev 5861)
@@ -592,6 +592,16 @@
'half' - half barbs (Default is 5)
'full' - full barbs (Default is 10)
'flag' - flags (default is 50)
+
+ *flip_barb*:
+ Either a single boolean flag or an array of booleans. Single boolean
+ indicates whether the lines and flags should point opposite to normal
+ for all barbs. An array (which should be the same size as the other
+ data arrays) indicates whether to flip for each individual barb.
+ Normal behavior is for the barbs and lines to point right (comes from
+ wind barbs having these features point towards low pressure in the
+ Northern Hemisphere.)
+ Default is False
Barbs are traditionally used in meteorology as a way to plot the speed
and direction of wind observations, but can technically be used to plot
@@ -647,7 +657,8 @@
self.fill_empty = kw.pop('fill_empty', False)
self.barb_increments = kw.pop('barb_increments', dict())
self.rounding = kw.pop('rounding', True)
-
+ self.flip = kw.pop('flip_barb', False)
+
#Flagcolor and and barbcolor provide convenience parameters for setting
#the facecolor and edgecolor, respectively, of the barb polygon. We
#also work here to make the flag the same color as the rest of the barb
@@ -714,7 +725,7 @@
return num_flags, num_barb, half_flag, empty_flag
def _make_barbs(self, u, v, nflags, nbarbs, half_barb, empty_flag, length,
- pivot, sizes, fill_empty):
+ pivot, sizes, fill_empty, flip):
'''This function actually creates the wind barbs. u and v are
components of the vector in the x and y directions, respectively.
nflags, nbarbs, and half_barb, empty_flag are, respectively, the number
@@ -730,7 +741,13 @@
height - height (distance from shaft of top) of a flag or full barb
width - width of a flag, twice the width of a full barb
emptybarb - radius of the circle used for low magnitudes
-
+
+ fill_empty specifies whether the circle representing an empty barb
+ should be filled or not (this changes the drawing of the polygon).
+ flip is a flag indicating whether the features should be flipped to
+ the other side of the barb (useful for winds in the southern
+ hemisphere.
+
This function returns list of arrays of vertices, defining a polygon for
each of the wind barbs. These polygons have been rotated to properly
align with the vector direction.'''
@@ -744,6 +761,9 @@
#Controls y point where to pivot the barb.
pivot_points = dict(tip=0.0, middle=-length/2.)
+
+ #Check for flip
+ if flip: full_height = -full_height
endx = 0.0
endy = pivot_points[pivot.lower()]
@@ -861,7 +881,7 @@
#Get the vertices for each of the barbs
plot_barbs = self._make_barbs(u, v, flags, barbs, halves, empty,
- self._length, self._pivot, self.sizes, self.fill_empty)
+ self._length, self._pivot, self.sizes, self.fill_empty, self.flip)
self.set_verts(plot_barbs)
#Set the color array
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 22:50:43
|
Revision: 5860
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5860&view=rev
Author: jdh2358
Date: 2008-07-24 22:50:41 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
added wx simple animation example
Modified Paths:
--------------
trunk/matplotlib/examples/animation/simple_anim_gtk.py
trunk/matplotlib/examples/animation/simple_anim_wx.py
Modified: trunk/matplotlib/examples/animation/simple_anim_gtk.py
===================================================================
--- trunk/matplotlib/examples/animation/simple_anim_gtk.py 2008-07-24 22:49:38 UTC (rev 5859)
+++ trunk/matplotlib/examples/animation/simple_anim_gtk.py 2008-07-24 22:50:41 UTC (rev 5860)
@@ -1,5 +1,5 @@
"""
-A simple example of an animated plot using a gtk backends
+A simple example of an animated plot using a gtk backend
"""
import time
import numpy as np
Modified: trunk/matplotlib/examples/animation/simple_anim_wx.py
===================================================================
--- trunk/matplotlib/examples/animation/simple_anim_wx.py 2008-07-24 22:49:38 UTC (rev 5859)
+++ trunk/matplotlib/examples/animation/simple_anim_wx.py 2008-07-24 22:50:41 UTC (rev 5860)
@@ -1,5 +1,5 @@
"""
-A simple example of an animated plot using a gtk backends
+A simple example of an animated plot using a wx backend
"""
import time
import numpy as np
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 22:49:40
|
Revision: 5859
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5859&view=rev
Author: jdh2358
Date: 2008-07-24 22:49:38 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
added wx simple animation example
Added Paths:
-----------
trunk/matplotlib/examples/animation/simple_anim_wx.py
Added: trunk/matplotlib/examples/animation/simple_anim_wx.py
===================================================================
--- trunk/matplotlib/examples/animation/simple_anim_wx.py (rev 0)
+++ trunk/matplotlib/examples/animation/simple_anim_wx.py 2008-07-24 22:49:38 UTC (rev 5859)
@@ -0,0 +1,29 @@
+"""
+A simple example of an animated plot using a gtk backends
+"""
+import time
+import numpy as np
+import matplotlib
+matplotlib.use('WXAgg') # do this before importing pylab
+
+import matplotlib.pyplot as plt
+
+fig = plt.figure()
+
+ax = fig.add_subplot(111)
+
+def animate(idleevent):
+ tstart = time.time() # for profiling
+ x = np.arange(0, 2*np.pi, 0.01) # x-array
+ line, = ax.plot(x, np.sin(x))
+
+ for i in np.arange(1,200):
+ line.set_ydata(np.sin(x+i/10.0)) # update the data
+ fig.canvas.draw() # redraw the canvas
+ print 'FPS:' , 200/(time.time()-tstart)
+ raise SystemExit
+
+# call the animation loop on idle
+import wx
+wx.EVT_IDLE(wx.GetApp(), animate)
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2008-07-24 22:44:58
|
Revision: 5858
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5858&view=rev
Author: efiring
Date: 2008-07-24 22:44:55 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Remove more obsolete files from unit subdirectory
Removed Paths:
-------------
trunk/matplotlib/unit/helpers.py
trunk/matplotlib/unit/simple_plot.py
trunk/matplotlib/unit/transform_memleak.py
trunk/matplotlib/unit/transforms_unit.py
Deleted: trunk/matplotlib/unit/helpers.py
===================================================================
--- trunk/matplotlib/unit/helpers.py 2008-07-24 22:41:52 UTC (rev 5857)
+++ trunk/matplotlib/unit/helpers.py 2008-07-24 22:44:55 UTC (rev 5858)
@@ -1,23 +0,0 @@
-import sys, time, os
-from matplotlib.numerix.mlab import rand
-from matplotlib.transforms import identity_transform, unit_bbox, Func, IDENTITY
-from matplotlib.transforms import one, Point, Value, Bbox, get_bbox_transform
-
-
-def rand_val(N = 1):
- if N==1: return Value(rand())
- else: return [Value(val) for val in rand(N)]
-
-def rand_point():
- return Point( rand_val(), rand_val() )
-
-def rand_bbox():
- ll = rand_point()
- ur = rand_point()
- return Bbox(ll, ur)
-
-def rand_transform():
- b1 = rand_bbox()
- b2 = rand_bbox()
- return get_bbox_transform(b1, b2)
-
Deleted: trunk/matplotlib/unit/simple_plot.py
===================================================================
--- trunk/matplotlib/unit/simple_plot.py 2008-07-24 22:41:52 UTC (rev 5857)
+++ trunk/matplotlib/unit/simple_plot.py 2008-07-24 22:44:55 UTC (rev 5858)
@@ -1,12 +0,0 @@
-import matplotlib
-matplotlib.use('Template')
-from pylab import *
-
-t = arange(0.0, 2.0, 0.01)
-s = sin(2*pi*t)
-plot(t, s)
-xlabel('time (s)')
-ylabel('voltage (mV)')
-title('About as simple as it gets, folks')
-savefig('simple_plot')
-show()
Deleted: trunk/matplotlib/unit/transform_memleak.py
===================================================================
--- trunk/matplotlib/unit/transform_memleak.py 2008-07-24 22:41:52 UTC (rev 5857)
+++ trunk/matplotlib/unit/transform_memleak.py 2008-07-24 22:44:55 UTC (rev 5858)
@@ -1,37 +0,0 @@
-import sys, time, os
-from helpers import rand_val, rand_point, rand_bbox, rand_transform
-from matplotlib.numerix.mlab import rand
-
-
-def report_memory(i):
- pid = os.getpid()
- if sys.platform=='sunos5':
- command = 'ps -p %d -o rss,osz' % pid
- else:
- 'ps -p %d -o rss,sz' % pid
- a2 = os.popen(command).readlines()
- print i, ' ', a2[1],
- return int(a2[1].split()[1])
-
-
-N = 200
-for i in range(N):
- v1, v2, v3, v4, v5 = rand_val(5)
- b1 = v1 + v2
- b2 = v3 -v4
- b3 = v1*v2*b2 - b1
-
-
- p1 = rand_point()
- box1 = rand_bbox()
- t = rand_transform()
- N = 10000
- x, y = rand(N), rand(N)
- xt, yt = t.numerix_x_y(x, y)
- xys = t.seq_xy_tups( zip(x,y) )
- val = report_memory(i)
- if i==1: start = val
-
-end = val
-print 'Average memory consumed per loop: %1.4f\n' % ((end-start)/float(N))
-
Deleted: trunk/matplotlib/unit/transforms_unit.py
===================================================================
--- trunk/matplotlib/unit/transforms_unit.py 2008-07-24 22:41:52 UTC (rev 5857)
+++ trunk/matplotlib/unit/transforms_unit.py 2008-07-24 22:44:55 UTC (rev 5858)
@@ -1,305 +0,0 @@
-#from __future__ import division
-
-from matplotlib.numerix import array, asarray, alltrue, arange
-from matplotlib.numerix.mlab import rand
-from matplotlib.transforms import Point, Bbox, Value, Affine
-from matplotlib.transforms import multiply_affines
-from matplotlib.transforms import Func, IDENTITY, LOG10, POLAR, FuncXY
-from matplotlib.transforms import SeparableTransformation
-from matplotlib.transforms import identity_transform, unit_bbox
-from matplotlib.transforms import get_bbox_transform
-from matplotlib.transforms import transform_bbox, inverse_transform_bbox
-from matplotlib.transforms import bbox_all
-from matplotlib.transforms import copy_bbox_transform
-
-
-def closeto(x,y):
- return abs(asarray(x)-asarray(y))<1e-10
-
-def closeto_seq(xs,ys):
- return alltrue([closeto(x,y) for x,y in zip(xs, ys)])
-
-def closeto_bbox(b1, b2):
- xmin1, xmax1 = b1.intervalx().get_bounds()
- ymin1, ymax1 = b1.intervaly().get_bounds()
- xmin2, xmax2 = b2.intervalx().get_bounds()
- ymin2, ymax2 = b2.intervaly().get_bounds()
-
- pairs = ( (xmin1, xmin2), (xmax1, xmax2), (ymin1, ymin2), (ymax1, ymax2))
- return alltrue([closeto(x,y) for x,y in pairs])
-
-ll = Point( Value(10), Value(10) )
-ur = Point( Value(200), Value(40) )
-
-bbox = Bbox(ll, ur)
-
-assert(bbox.xmin()==10)
-assert(bbox.width()==190)
-assert(bbox.height()==30)
-
-ll.x().set(12.0)
-assert(bbox.xmin()==12)
-assert(bbox.width()==188)
-assert(bbox.height()==30)
-
-
-a = Value(10)
-b = Value(0)
-c = Value(0)
-d = Value(20)
-tx = Value(-10)
-ty = Value(-20)
-
-affine = Affine(a,b,c,d,tx,ty)
-# test transformation of xy tuple
-x, y = affine.xy_tup( (10,20) )
-assert(x==90)
-assert(y==380)
-
-# test transformation of sequence of xy tuples
-xy = affine.seq_xy_tups( ( (10,20), (20,30), ) )
-assert(xy[0] == (90, 380))
-assert(xy[1] == (190, 580))
-
-# test transformation of x and y sequences
-xy = affine.seq_x_y( (10,20), (20,30))
-assert(xy[0] == (90, 190))
-assert(xy[1] == (380, 580))
-
-# test with numeric arrays
-xy = affine.seq_x_y( array((10,20)), array((20,30)))
-assert(xy[0] == (90, 190))
-assert(xy[1] == (380, 580))
-
-# now change the x scale factor and make sure the affine updated
-# properly
-a.set(20)
-xy = affine.seq_xy_tups( ( (10,20), (20,30), ) )
-assert(xy[0] == (190, 380))
-assert(xy[1] == (390, 580))
-
-# Test the aritmetic operations on lazy values
-v1 = Value(10)
-v2 = Value(20)
-o1 = v1 + v2
-assert( o1.get() == 30)
-
-o2 = v1 * v2
-assert( o2.get() == 200)
-
-v3 = Value(2)
-o3 = (v1+v2)*v3
-assert( o3.get() == 60)
-
-# test a composition of affines
-zero = Value(0)
-one = Value(1)
-two = Value(2)
-num = Value(2)
-a1 = Affine(num, zero, zero, num, zero, zero)
-a2 = Affine(one, zero, zero, num, num, one )
-
-pnt = 3,4
-a = multiply_affines(a1, a2)
-assert( a2.xy_tup(pnt) == (5,9) )
-assert( a.xy_tup(pnt) == (10,18) )
-
-a = multiply_affines(a2, a1)
-assert( a1.xy_tup(pnt) == (6,8) )
-assert( a.xy_tup(pnt) == (8,17) )
-
-
-# change num to 4 and make sure the affine product is still right
-num.set(4)
-assert( a1.xy_tup(pnt) == (12,16) )
-assert( a.xy_tup(pnt) == (16,65) )
-
-# test affines with arithemtic sums of lazy values
-val = num*(one + two)
-a1 = Affine(one, zero, zero, val, num, val)
-assert(a1.xy_tup(pnt) == (7, 60))
-
-x = rand(20)
-y = rand(20)
-transform = identity_transform()
-xout, yout = transform.seq_x_y(x,y)
-assert((x,y) == transform.seq_x_y(x,y))
-
-
-# test bbox transforms; transform the unit coordinate system to
-# "display coords"
-bboxin = unit_bbox()
-ll = Point( Value(10), Value(10) )
-ur = Point( Value(200), Value(40) )
-bboxout = Bbox(ll, ur)
-
-transform = get_bbox_transform(bboxin, bboxout)
-
-assert( transform.xy_tup( (0,0) )==(10, 10))
-assert( transform.xy_tup( (1,1) )==(200, 40))
-assert( transform.xy_tup( (0.5, 0.5) )==(105, 25))
-
-# simulate a resize
-ur.x().set(400)
-ur.y().set(400)
-assert( transform.xy_tup( (0,0) )==(10, 10))
-assert( transform.xy_tup( (1,1) )==(400, 400))
-assert( transform.xy_tup( (0.5, 0.5) )==(205, 205))
-
-pairs = ( ( (0, 0 ), (10, 10 ) ),
- ( (1, 1 ), (400, 400) ),
- ( (0.5, 0.5), (205, 205) ) )
-
-for p1, p2 in pairs:
- assert( closeto_seq( transform.xy_tup(p1), p2 ) )
- assert( closeto_seq( transform.inverse_xy_tup(p2), p1) )
-
-# make some random bbox transforms and test inversion
-def rand_point():
- xy = rand(2)
- return Point( Value(xy[0]), Value(xy[1]) )
-
-def rand_bbox():
- ll = rand_point()
- ur = rand_point()
- return Bbox(ll, ur)
-
-def rand_transform():
- b1 = rand_bbox()
- b2 = rand_bbox()
- return get_bbox_transform(b1, b2)
-
-
-transform = rand_transform()
-transform.set_funcx(Func(LOG10))
-
-x = rand(100)
-y = rand(100)
-xys = zip(x,y)
-for xy in xys:
- xyt = transform.xy_tup(xy)
- xyi = transform.inverse_xy_tup(xyt)
- assert( closeto_seq(xy,xyi) )
-
-
-ll = Point( Value(-10), Value(-10) )
-ur = Point( Value(200), Value(40) )
-bbox = Bbox(ll, ur)
-assert(bbox.xmin()==-10)
-assert(bbox.xmax()==200)
-assert(bbox.ymin()==-10)
-assert(bbox.ymax()==40)
-
-bbox.update(xys, False) # don't ignore current lim
-
-bbox.update(xys, True) #ignore current lim
-assert(bbox.xmin()==min(x))
-assert(bbox.xmax()==max(x))
-assert(bbox.ymin()==min(y))
-assert(bbox.ymax()==max(y))
-
-
-ll = Point( Value(-10), Value(-10) )
-ur = Point( Value(200), Value(40) )
-bbox = Bbox(ll, ur)
-
-ix = bbox.intervalx()
-iy = bbox.intervaly()
-
-assert(bbox.xmin()==-10)
-assert(bbox.xmax()==200)
-assert(bbox.ymin()==-10)
-assert(bbox.ymax()==40)
-
-ix.set_bounds(-30, 400)
-assert(bbox.xmin()==-30)
-assert(bbox.xmax()==400)
-assert(bbox.ymin()==-10)
-assert(bbox.ymax()==40)
-
-
-num = Value(200.0)
-den = Value(100.0)
-div = num/den
-assert(div.get()==2.0)
-
-
-# test the inverse bbox functions
-trans = rand_transform()
-bbox1 = rand_bbox()
-ibbox = inverse_transform_bbox(trans, bbox1)
-bbox2 = transform_bbox(trans, ibbox)
-assert(closeto_bbox(bbox1, bbox2))
-
-
-ll = Point( Value(-10), Value(-10) )
-ur = Point( Value(200), Value(40) )
-bbox = Bbox(ll, ur)
-transform = get_bbox_transform(unit_bbox(), bbox)
-assert( closeto_seq( inverse_transform_bbox(transform, bbox).get_bounds(),
- (0,0,1,1)))
-assert( closeto_seq( transform_bbox(transform, unit_bbox()).get_bounds(),
- (-10,-10,210,50)))
-
-
-# test the bbox all bounding functions
-boxes = [rand_bbox() for i in range(20)]
-xmin = min([box.xmin() for box in boxes])
-xmax = max([box.xmax() for box in boxes])
-ymin = min([box.ymin() for box in boxes])
-ymax = max([box.ymax() for box in boxes])
-
-box = bbox_all(boxes)
-assert( closeto_seq( box.get_bounds(), (xmin, ymin, xmax-xmin, ymax-ymin)))
-
-
-
-
-t1 = rand_transform()
-oboundsx = t1.get_bbox1().intervalx().get_bounds()
-oboundsy = t1.get_bbox1().intervaly().get_bounds()
-t2 = copy_bbox_transform(t1)
-t1.get_bbox1().intervalx().set_bounds(1,2)
-t2.get_bbox2().intervaly().set_bounds(-1,12)
-newboundsx = t2.get_bbox1().intervalx().get_bounds()
-newboundsy = t2.get_bbox1().intervaly().get_bounds()
-assert(oboundsx==newboundsx)
-assert(oboundsy==newboundsy)
-
-
-import math
-polar = FuncXY(POLAR)
-assert( closeto_seq( polar.map(math.pi,1), (-1,0)) )
-assert( closeto_seq( polar.inverse(1,1), ( (math.pi/4), math.sqrt(2))) )
-
-
-
-# This unit test requires "nan", which numarray.ieeespecial
-# exports. (But we can keep using the numerix module.)
-try:
- from numarray.ieeespecial import nan
- have_nan = True
-except ImportError:
- have_nan = False
-
-if have_nan:
- y1=array([ 2,nan,1,2,3,4])
- y2=array([nan,nan,1,2,3,4])
-
- x1=arange(len(y1))
- x2=arange(len(y2))
-
- bbox1 = Bbox(Point(Value(0),Value(0)),
- Point(Value(1),Value(1)))
-
- bbox2 = Bbox(Point(Value(0),Value(0)),
- Point(Value(1),Value(1)))
-
- bbox1.update_numerix(x1,y1,1)
- bbox2.update_numerix(x2,y2,1)
-
- assert( closeto_seq( bbox1.get_bounds(), bbox2.get_bounds() ) )
-else:
- print 'nan could not be imported from numarray.ieeespecial, test skipped'
-
-print 'all tests passed'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 22:41:54
|
Revision: 5857
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5857&view=rev
Author: jdh2358
Date: 2008-07-24 22:41:52 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
added simple gtk animation example
Added Paths:
-----------
trunk/matplotlib/examples/animation/simple_anim_gtk.py
Added: trunk/matplotlib/examples/animation/simple_anim_gtk.py
===================================================================
--- trunk/matplotlib/examples/animation/simple_anim_gtk.py (rev 0)
+++ trunk/matplotlib/examples/animation/simple_anim_gtk.py 2008-07-24 22:41:52 UTC (rev 5857)
@@ -0,0 +1,30 @@
+"""
+A simple example of an animated plot using a gtk backends
+"""
+import time
+import numpy as np
+import matplotlib
+matplotlib.use('GTKAgg') # do this before importing pylab
+
+import matplotlib.pyplot as plt
+
+fig = plt.figure()
+
+ax = fig.add_subplot(111)
+
+def animate():
+ tstart = time.time() # for profiling
+ x = np.arange(0, 2*np.pi, 0.01) # x-array
+ line, = ax.plot(x, np.sin(x))
+
+ for i in np.arange(1,200):
+ line.set_ydata(np.sin(x+i/10.0)) # update the data
+ fig.canvas.draw() # redraw the canvas
+ print 'FPS:' , 200/(time.time()-tstart)
+ raise SystemExit
+
+import gobject
+print 'adding idle'
+gobject.idle_add(animate)
+print 'showing'
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2008-07-24 22:37:07
|
Revision: 5856
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5856&view=rev
Author: efiring
Date: 2008-07-24 22:37:03 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Deleted obsolete memleak_transforms.py
Removed Paths:
-------------
trunk/matplotlib/unit/memleak_transforms.py
Deleted: trunk/matplotlib/unit/memleak_transforms.py
===================================================================
--- trunk/matplotlib/unit/memleak_transforms.py 2008-07-24 22:35:06 UTC (rev 5855)
+++ trunk/matplotlib/unit/memleak_transforms.py 2008-07-24 22:37:03 UTC (rev 5856)
@@ -1,73 +0,0 @@
-import os, sys, time, gc
-
-from matplotlib.numerix import array, asarray, alltrue
-from matplotlib.numerix.mlab import rand
-from matplotlib.transforms import Point, Bbox, Value, Affine
-from matplotlib.transforms import multiply_affines
-from matplotlib.transforms import Func, IDENTITY, LOG10, POLAR, FuncXY
-from matplotlib.transforms import SeparableTransformation
-from matplotlib.transforms import identity_transform, unit_bbox
-from matplotlib.transforms import get_bbox_transform
-from matplotlib.transforms import transform_bbox, inverse_transform_bbox
-from matplotlib.transforms import bbox_all
-from matplotlib.transforms import copy_bbox_transform, blend_xy_sep_transform
-
-
-def report_memory(i):
- pid = os.getpid()
- if sys.platform=='sunos5':
- command = 'ps -p %d -o rss,osz' % pid
- else:
- 'ps -p %d -o rss,sz' % pid
- a2 = os.popen(command).readlines()
- print i, ' ', a2[1],
- return int(a2[1].split()[1])
-
-
-
-# make some random bbox transforms and test inversion
-def rand_point():
- xy = rand(2)
- return Point( Value(xy[0]), Value(xy[1]) )
-
-def rand_bbox():
- ll = rand_point()
- ur = rand_point()
- return Bbox(ll, ur)
-
-def rand_transform():
- b1 = rand_bbox()
- b2 = rand_bbox()
- return get_bbox_transform(b1, b2)
-
-
-
-class Line:
- def __init__(self):
- self._transform = identity_transform()
-
- def set_transform(self, t):
- self._transform = t
-
-x, y = rand(2,10000)
-indStart, indEnd = 30, 350
-for i in range(indEnd):
- for j in range(20):
- l = Line()
- t1 = rand_transform()
- t2 = rand_transform()
- trans = blend_xy_sep_transform( t1, t2)
- l.set_transform(trans)
- xt, yt = trans.numerix_x_y(x, y)
- xytup = tuple(rand(2))
- txytup = trans.xy_tup(xytup)
- ixytup = trans.inverse_xy_tup(xytup)
- seqt = trans.seq_xy_tups(zip(x,y))
- gc.collect()
- val = report_memory(i)
- if i==indStart: start = val # wait a few cycles for memory usage to stabilize
-
-
-end = val
-print 'Average memory consumed per loop: %1.4fk bytes\n' % ((end-start)/float(indEnd-indStart))
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 22:35:08
|
Revision: 5855
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5855&view=rev
Author: jdh2358
Date: 2008-07-24 22:35:06 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
renamed anim to reflect tk
Added Paths:
-----------
trunk/matplotlib/examples/animation/simple_anim_tkagg.py
Removed Paths:
-------------
trunk/matplotlib/examples/animation/anim.py
Deleted: trunk/matplotlib/examples/animation/anim.py
===================================================================
--- trunk/matplotlib/examples/animation/anim.py 2008-07-24 22:34:32 UTC (rev 5854)
+++ trunk/matplotlib/examples/animation/anim.py 2008-07-24 22:35:06 UTC (rev 5855)
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-"""
-A simple example of an animated plot in tkagg
-"""
-import matplotlib
-matplotlib.use('TkAgg') # do this before importing pylab
-
-import matplotlib.pyplot as plt
-fig = plt.figure()
-ax = fig.add_subplot(111)
-
-def animate():
- tstart = time.time() # for profiling
- x = np.arange(0, 2*np.pi, 0.01) # x-array
- line, = ax.plot(x, np.sin(x))
-
- for i in np.arange(1,200):
- line.set_ydata(np.sin(x+i/10.0)) # update the data
- fig.canvas.draw() # redraw the canvas
- print 'FPS:' , 200/(time.time()-tstart)
-
-win = fig.canvas.manager.window
-fig.canvas.manager.window.after(100, animate)
-plt.show()
Copied: trunk/matplotlib/examples/animation/simple_anim_tkagg.py (from rev 5854, trunk/matplotlib/examples/animation/anim.py)
===================================================================
--- trunk/matplotlib/examples/animation/simple_anim_tkagg.py (rev 0)
+++ trunk/matplotlib/examples/animation/simple_anim_tkagg.py 2008-07-24 22:35:06 UTC (rev 5855)
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+"""
+A simple example of an animated plot in tkagg
+"""
+import matplotlib
+matplotlib.use('TkAgg') # do this before importing pylab
+
+import matplotlib.pyplot as plt
+fig = plt.figure()
+ax = fig.add_subplot(111)
+
+def animate():
+ tstart = time.time() # for profiling
+ x = np.arange(0, 2*np.pi, 0.01) # x-array
+ line, = ax.plot(x, np.sin(x))
+
+ for i in np.arange(1,200):
+ line.set_ydata(np.sin(x+i/10.0)) # update the data
+ fig.canvas.draw() # redraw the canvas
+ print 'FPS:' , 200/(time.time()-tstart)
+
+win = fig.canvas.manager.window
+fig.canvas.manager.window.after(100, animate)
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 22:34:34
|
Revision: 5854
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5854&view=rev
Author: jdh2358
Date: 2008-07-24 22:34:32 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
fixed anim.py to use tk idiom
Modified Paths:
--------------
trunk/matplotlib/examples/animation/anim.py
Modified: trunk/matplotlib/examples/animation/anim.py
===================================================================
--- trunk/matplotlib/examples/animation/anim.py 2008-07-24 22:29:57 UTC (rev 5853)
+++ trunk/matplotlib/examples/animation/anim.py 2008-07-24 22:34:32 UTC (rev 5854)
@@ -1,32 +1,24 @@
#!/usr/bin/env python
"""
-A simple example of an animated plot in matplotlib. You can test the
-speed of animation of various backends by running the script with the
-'-dSomeBackend' flag
-
-SC Aug 31 2005 mpl 0.83.2:
-Here are some numbers from my system, where FPS is the frames rendered
-per second
-
- GTK 29 FPS
- GTKAgg 18 FPS
- GTKCairo 15 FPS
- TkAgg 13 FPS
- QkAgg 13 FPS
+A simple example of an animated plot in tkagg
"""
-import time
+import matplotlib
+matplotlib.use('TkAgg') # do this before importing pylab
-import pylab as p
+import matplotlib.pyplot as plt
+fig = plt.figure()
+ax = fig.add_subplot(111)
-# turn interactive mode on for dynamic updates. If you aren't in
-# interactive mode, you'll need to use a GUI event handler/timer.
-p.ion()
+def animate():
+ tstart = time.time() # for profiling
+ x = np.arange(0, 2*np.pi, 0.01) # x-array
+ line, = ax.plot(x, np.sin(x))
-tstart = time.time() # for profiling
-x = p.arange(0, 2*p.pi, 0.01) # x-array
-line, = p.plot(x, p.sin(x))
-for i in p.arange(1,200):
- line.set_ydata(p.sin(x+i/10.0)) # update the data
- p.draw() # redraw the canvas
+ for i in np.arange(1,200):
+ line.set_ydata(np.sin(x+i/10.0)) # update the data
+ fig.canvas.draw() # redraw the canvas
+ print 'FPS:' , 200/(time.time()-tstart)
-print 'FPS:' , 200/(time.time()-tstart)
+win = fig.canvas.manager.window
+fig.canvas.manager.window.after(100, animate)
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-24 22:30:02
|
Revision: 5853
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5853&view=rev
Author: pkienzle
Date: 2008-07-24 22:29:57 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
support mouse wheel in wx
Modified Paths:
--------------
trunk/matplotlib/examples/pylab_examples/image_slices_viewer.py
trunk/matplotlib/lib/matplotlib/backend_bases.py
trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py
trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
Modified: trunk/matplotlib/examples/pylab_examples/image_slices_viewer.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/image_slices_viewer.py 2008-07-24 21:56:57 UTC (rev 5852)
+++ trunk/matplotlib/examples/pylab_examples/image_slices_viewer.py 2008-07-24 22:29:57 UTC (rev 5853)
@@ -17,7 +17,7 @@
self.update()
def onscroll(self, event):
- print event.button
+ print event.button, event.step
if event.button=='up':
self.ind = numpy.clip(self.ind+1, 0, self.slices-1)
else:
Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-07-24 21:56:57 UTC (rev 5852)
+++ trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-07-24 22:29:57 UTC (rev 5853)
@@ -768,7 +768,10 @@
*key*
the key pressed: None, chr(range(255), 'shift', 'win', or 'control'
+ *step*
+ number of scroll steps (positive for 'up', negative for 'down')
+
Example usage::
def on_press(event):
@@ -783,16 +786,18 @@
inaxes = None # the Axes instance if mouse us over axes
xdata = None # x coord of mouse in data coords
ydata = None # y coord of mouse in data coords
+ step = None # scroll steps for scroll events
def __init__(self, name, canvas, x, y, button=None, key=None,
- guiEvent=None):
+ step=0, guiEvent=None):
"""
x, y in figure coords, 0,0 = bottom, left
- button pressed None, 1, 2, 3
+ button pressed None, 1, 2, 3, 'up', 'down'
"""
LocationEvent.__init__(self, name, canvas, x, y, guiEvent=guiEvent)
self.button = button
self.key = key
+ self.step = step
class PickEvent(Event):
"""
@@ -1050,7 +1055,7 @@
event = PickEvent(s, self, mouseevent, artist, **kwargs)
self.callbacks.process(s, event)
- def scroll_event(self, x, y, button, guiEvent=None):
+ def scroll_event(self, x, y, step, guiEvent=None):
"""
Backend derived classes should call this function on any
scroll wheel event. x,y are the canvas coords: 0,0 is lower,
@@ -1059,9 +1064,13 @@
This method will be call all functions connected to the
'scroll_event' with a :class:`MouseEvent` instance.
"""
- self._button = button
+ if step >= 0:
+ self._button = 'up'
+ else:
+ self._button = 'down'
s = 'scroll_event'
- mouseevent = MouseEvent(s, self, x, y, button, self._key, guiEvent=guiEvent)
+ mouseevent = MouseEvent(s, self, x, y, self._button, self._key,
+ step=step, guiEvent=guiEvent)
self.callbacks.process(s, mouseevent)
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008-07-24 21:56:57 UTC (rev 5852)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008-07-24 22:29:57 UTC (rev 5853)
@@ -181,10 +181,10 @@
# flipy so y=0 is bottom of canvas
y = self.allocation.height - event.y
if event.direction==gdk.SCROLL_UP:
- direction = 'up'
+ step = 1
else:
- direction = 'down'
- FigureCanvasBase.scroll_event(self, x, y, direction)
+ step = -1
+ FigureCanvasBase.scroll_event(self, x, y, step)
return False # finish event propagation?
def button_press_event(self, widget, event):
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-07-24 21:56:57 UTC (rev 5852)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-07-24 22:29:57 UTC (rev 5853)
@@ -1160,9 +1160,36 @@
FigureCanvasBase.button_release_event(self, x, y, 1, guiEvent=evt)
def _onMouseWheel(self, evt):
- # TODO: implement mouse wheel handler
- pass
+ """Translate mouse wheel events into matplotlib events"""
+ # Determine mouse location
+ x = evt.GetX()
+ y = self.figure.bbox.height - evt.GetY()
+
+ # Convert delta/rotation/rate into a floating point step size
+ delta = evt.GetWheelDelta()
+ rotation = evt.GetWheelRotation()
+ rate = evt.GetLinesPerAction()
+ #print "delta,rotation,rate",delta,rotation,rate
+ step = rate*float(rotation)/delta
+
+ # Done handling event
+ evt.Skip()
+
+ # Mac is giving two events for every wheel event
+ # Need to skip every second one
+ if wx.Platform == '__WXMAC__':
+ if not hasattr(self,'_skipwheelevent'):
+ self._skipwheelevent = True
+ elif self._skipwheelevent:
+ self._skipwheelevent = False
+ return # Return without processing event
+ else:
+ self._skipwheelevent = True
+
+ # Convert to mpl event
+ FigureCanvasBase.scroll_event(self, x, y, step, guiEvent=evt)
+
def _onMotion(self, evt):
"""Start measuring on an axis."""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sa...@us...> - 2008-07-24 21:56:59
|
Revision: 5852
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5852&view=rev
Author: sameerd
Date: 2008-07-24 21:56:57 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Fixing edge cases in rec_join in branch
Modified Paths:
--------------
branches/v0_91_maint/lib/matplotlib/mlab.py
Modified: branches/v0_91_maint/lib/matplotlib/mlab.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/mlab.py 2008-07-24 21:56:08 UTC (rev 5851)
+++ branches/v0_91_maint/lib/matplotlib/mlab.py 2008-07-24 21:56:57 UTC (rev 5852)
@@ -1951,10 +1951,12 @@
def rec_join(key, r1, r2, jointype='inner', defaults=None):
"""
join record arrays r1 and r2 on key; key is a tuple of field
- names. if r1 and r2 have equal values on all the keys in the key
+ names. If r1 and r2 have equal values on all the keys in the key
tuple, then their fields will be merged into a new record array
- containing the intersection of the fields of r1 and r2
+ containing the intersection of the fields of r1 and r2.
+ r1 (also r2) must not have any duplicate keys.
+
The jointype keyword can be 'inner', 'outer', 'leftouter'.
To do a rightouter join just reverse r1 and r2.
@@ -1993,9 +1995,6 @@
right_ind = np.array([r2d[k] for k in right_keys])
right_len = len(right_ind)
- r2 = rec_drop_fields(r2, r1.dtype.names)
-
-
def key_desc(name):
'if name is a string key, use the larger size of r1 or r2 before merging'
dt1 = r1.dtype[name]
@@ -2027,22 +2026,19 @@
newrec[k] = v
for field in r1.dtype.names:
- newrec[field][:common_len] = r1[field][r1ind]
- if jointype == "outer" or jointype == "leftouter":
+ if common_len:
+ newrec[field][:common_len] = r1[field][r1ind]
+ if (jointype == "outer" or jointype == "leftouter") and left_len:
newrec[field][common_len:(common_len+left_len)] = r1[field][left_ind]
for field in r2.dtype.names:
- newrec[field][:common_len] = r2[field][r2ind]
- if jointype == "outer":
- newrec[field][-right_len:] = r2[field][right_ind[right_ind.argsort()]]
+ if field not in key and common_len:
+ newrec[field][:common_len] = r2[field][r2ind]
+ if jointype == "outer" and right_len:
+ newrec[field][-right_len:] = r2[field][right_ind]
- # sort newrec using the same order as r1
- sort_indices = r1ind.copy()
- if jointype == "outer" or jointype == "leftouter":
- sort_indices = np.append(sort_indices, left_ind)
- newrec[:(common_len+left_len)] = newrec[sort_indices.argsort()]
+ newrec.sort(order=key)
-
return newrec.view(np.recarray)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sa...@us...> - 2008-07-24 21:56:09
|
Revision: 5851
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5851&view=rev
Author: sameerd
Date: 2008-07-24 21:56:08 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Fixing edge cases in rec_join
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/mlab.py
Modified: trunk/matplotlib/lib/matplotlib/mlab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mlab.py 2008-07-24 21:56:06 UTC (rev 5850)
+++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-07-24 21:56:08 UTC (rev 5851)
@@ -2032,12 +2032,13 @@
newrec[k] = v
for field in r1.dtype.names:
- newrec[field][:common_len] = r1[field][r1ind]
+ if common_len:
+ newrec[field][:common_len] = r1[field][r1ind]
if (jointype == "outer" or jointype == "leftouter") and left_len:
newrec[field][common_len:(common_len+left_len)] = r1[field][left_ind]
for field in r2.dtype.names:
- if field not in key:
+ if field not in key and common_len:
newrec[field][:common_len] = r2[field][r2ind]
if jointype == "outer" and right_len:
newrec[field][-right_len:] = r2[field][right_ind]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 21:56:08
|
Revision: 5850
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5850&view=rev
Author: jdh2358
Date: 2008-07-24 21:56:06 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
minor cleanup of units example, added some to backend driver, more to be fixed
Modified Paths:
--------------
trunk/matplotlib/examples/tests/backend_driver.py
trunk/matplotlib/examples/units/artist_tests.py
trunk/matplotlib/examples/units/bar_demo2.py
trunk/matplotlib/examples/units/bar_unit_demo.py
trunk/matplotlib/examples/units/basic_units.py
trunk/matplotlib/examples/units/evans_test.py
trunk/matplotlib/examples/units/evans_test2.py
trunk/matplotlib/examples/units/radian_demo.py
trunk/matplotlib/examples/units/units_scatter.py
trunk/matplotlib/unit/memleak_hawaii3.py
Modified: trunk/matplotlib/examples/tests/backend_driver.py
===================================================================
--- trunk/matplotlib/examples/tests/backend_driver.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/tests/backend_driver.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -121,9 +121,23 @@
'color_cycle.py',
]
+units_dir = os.path.join('..', 'units')
+units_files = [
+ 'annotate_with_units.py',
+ #'artist_tests.py', # broken, fixme
+ 'bar_demo2.py',
+ #'bar_unit_demo.py', # broken, fixme
+ #'ellipse_with_units.py', # broken, fixme
+ 'radian_demo.py',
+ 'units_sample.py',
+ #'units_scatter.py', # broken, fixme
+ ]
+
files = [os.path.join(pylab_dir, fname) for fname in pylab_files] +\
- [os.path.join(api_dir, fname) for fname in api_files]
+ [os.path.join(api_dir, fname) for fname in api_files] +\
+ [os.path.join(units_dir, fname) for fname in units_files]
+
# tests known to fail on a given backend
Modified: trunk/matplotlib/examples/units/artist_tests.py
===================================================================
--- trunk/matplotlib/examples/units/artist_tests.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/artist_tests.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -14,9 +14,9 @@
import matplotlib.units as units
from basic_units import cm, inch
+import numpy as np
+from pylab import figure, show
-from pylab import figure, show, nx
-
fig = figure()
ax = fig.add_subplot(111)
ax.xaxis.set_units(cm)
@@ -26,7 +26,7 @@
verts = []
for i in range(10):
# a random line segment in inches
- verts.append(zip(*inch*10*nx.mlab.rand(2, random.randint(2,15))))
+ verts.append(zip(*inch*10*np.random.rand(2, random.randint(2,15))))
lc = collections.LineCollection(verts, axes=ax)
ax.add_collection(lc)
Modified: trunk/matplotlib/examples/units/bar_demo2.py
===================================================================
--- trunk/matplotlib/examples/units/bar_demo2.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/bar_demo2.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -7,10 +7,11 @@
units)
"""
+import numpy as np
from basic_units import cm, inch
-from pylab import figure, show, nx
+from pylab import figure, show
-cms = cm *nx.arange(0, 10, 2)
+cms = cm *np.arange(0, 10, 2)
bottom=0*cm
width=0.8*cm
Modified: trunk/matplotlib/examples/units/bar_unit_demo.py
===================================================================
--- trunk/matplotlib/examples/units/bar_unit_demo.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/bar_unit_demo.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -1,6 +1,7 @@
#!/usr/bin/env python
+import numpy as np
from basic_units import cm, inch
-from pylab import figure, show,nx
+from pylab import figure, show
N = 5
menMeans = (150*cm, 160*cm, 146*cm, 172*cm, 155*cm)
@@ -9,7 +10,7 @@
fig = figure()
ax = fig.add_subplot(111)
-ind = nx.arange(N) # the x locations for the groups
+ind = np.arange(N) # the x locations for the groups
width = 0.35 # the width of the bars
p1 = ax.bar(ind, menMeans, width, color='r', bottom=0*cm, yerr=menStd)
Modified: trunk/matplotlib/examples/units/basic_units.py
===================================================================
--- trunk/matplotlib/examples/units/basic_units.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/basic_units.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -1,9 +1,8 @@
import math
+import numpy as np
-
import matplotlib.units as units
import matplotlib.ticker as ticker
-import matplotlib.numerix as nx
from matplotlib.axes import Axes
from matplotlib.cbook import iterable
@@ -122,7 +121,7 @@
self.proxy_target = self.value
def get_compressed_copy(self, mask):
- compressed_value = nx.ma.masked_array(self.value, mask=mask).compressed()
+ compressed_value = np.ma.masked_array(self.value, mask=mask).compressed()
return TaggedValue(compressed_value, self.unit)
def __getattribute__(self, name):
@@ -135,9 +134,9 @@
def __array__(self, t = None, context = None):
if t is not None:
- return nx.asarray(self.value).astype(t)
+ return np.asarray(self.value).astype(t)
else:
- return nx.asarray(self.value, 'O')
+ return np.asarray(self.value, 'O')
def __array_wrap__(self, array, context):
return TaggedValue(array, self.unit)
@@ -159,7 +158,7 @@
return IteratorProxy(iter(self.value), self.unit)
def get_compressed_copy(self, mask):
- new_value = nx.ma.masked_array(self.value, mask=mask).compressed()
+ new_value = np.ma.masked_array(self.value, mask=mask).compressed()
return TaggedValue(new_value, self.unit)
def convert_to(self, unit):
@@ -211,7 +210,7 @@
return TaggedValue(array, self)
def __array__(self, t=None, context=None):
- ret = nx.array([1])
+ ret = np.array([1])
if t is not None:
return ret.astype(t)
else:
@@ -275,8 +274,8 @@
radians = BasicUnit('rad', 'radians')
degrees = BasicUnit('deg', 'degrees')
-radians.add_conversion_factor(degrees, 180.0/nx.pi)
-degrees.add_conversion_factor(radians, nx.pi/180.0)
+radians.add_conversion_factor(degrees, 180.0/np.pi)
+degrees.add_conversion_factor(radians, np.pi/180.0)
secs = BasicUnit('s', 'seconds')
hertz = BasicUnit('Hz', 'Hertz')
@@ -287,7 +286,7 @@
# radians formatting
def rad_fn(x,pos=None):
- n = int((x / nx.pi) * 2.0 + 0.25)
+ n = int((x / np.pi) * 2.0 + 0.25)
if n == 0:
return '0'
elif n == 1:
@@ -307,7 +306,7 @@
if unit==radians:
return units.AxisInfo(
- majloc=ticker.MultipleLocator(base=nx.pi/2),
+ majloc=ticker.MultipleLocator(base=np.pi/2),
majfmt=ticker.FuncFormatter(rad_fn),
label=unit.fullname,
)
Modified: trunk/matplotlib/examples/units/evans_test.py
===================================================================
--- trunk/matplotlib/examples/units/evans_test.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/evans_test.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -11,7 +11,7 @@
from matplotlib.cbook import iterable
import matplotlib.units as units
import matplotlib.ticker as ticker
-from pylab import figure, show, nx
+from pylab import figure, show
class Foo:
def __init__( self, val, unit=1.0 ):
Modified: trunk/matplotlib/examples/units/evans_test2.py
===================================================================
--- trunk/matplotlib/examples/units/evans_test2.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/evans_test2.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -3,13 +3,14 @@
This example shows how the unit class can determine the tick locating,
formatting and axis labeling.
"""
+import numpy as np
from basic_units import radians, degrees, cos
-from pylab import figure, show, nx
+from pylab import figure, show
from matplotlib.cbook import iterable
import math
-x = nx.arange(0, 15, 0.01) * radians
+x = np.arange(0, 15, 0.01) * radians
fig = figure()
Modified: trunk/matplotlib/examples/units/radian_demo.py
===================================================================
--- trunk/matplotlib/examples/units/radian_demo.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/radian_demo.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -1,7 +1,8 @@
+import numpy as np
from basic_units import radians, degrees, cos
-from pylab import figure, show, nx
+from pylab import figure, show
-x = nx.arange(0, 15, 0.01) * radians
+x = np.arange(0, 15, 0.01) * radians
fig = figure()
fig.subplots_adjust(hspace=0.3)
Modified: trunk/matplotlib/examples/units/units_scatter.py
===================================================================
--- trunk/matplotlib/examples/units/units_scatter.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/examples/units/units_scatter.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -8,14 +8,16 @@
The example below shows support for unit conversions over masked
arrays.
"""
+import numpy as np
from basic_units import secs, hertz, minutes
-from matplotlib.pylab import figure, show, nx
+from matplotlib.pylab import figure, show
# create masked array
-xsecs = secs*nx.ma.MaskedArray((1,2,3,4,5,6,7,8), nx.Float, mask=(1,0,1,0,0,0,1,0))
-#xsecs = secs*nx.arange(1,10.)
+xsecs = secs*np.ma.MaskedArray((1,2,3,4,5,6,7,8), (1,0,1,0,0,0,1,0), np.float)
+#xsecs = secs*np.arange(1,10.)
+
fig = figure()
ax1 = fig.add_subplot(3,1,1)
ax1.scatter(xsecs, xsecs)
Modified: trunk/matplotlib/unit/memleak_hawaii3.py
===================================================================
--- trunk/matplotlib/unit/memleak_hawaii3.py 2008-07-24 21:23:04 UTC (rev 5849)
+++ trunk/matplotlib/unit/memleak_hawaii3.py 2008-07-24 21:56:06 UTC (rev 5850)
@@ -2,7 +2,7 @@
import os, sys, time, gc
import matplotlib
-matplotlib.use('PDF')
+matplotlib.use('Agg')
from matplotlib.cbook import report_memory
import numpy as np
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 21:23:07
|
Revision: 5849
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5849&view=rev
Author: jdh2358
Date: 2008-07-24 21:23:04 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
fixed memleak hawaii rand
Modified Paths:
--------------
trunk/matplotlib/unit/memleak_hawaii3.py
Modified: trunk/matplotlib/unit/memleak_hawaii3.py
===================================================================
--- trunk/matplotlib/unit/memleak_hawaii3.py 2008-07-24 20:06:36 UTC (rev 5848)
+++ trunk/matplotlib/unit/memleak_hawaii3.py 2008-07-24 21:23:04 UTC (rev 5849)
@@ -10,7 +10,7 @@
# take a memory snapshot on indStart and compare it with indEnd
-rand = np.mlab.rand
+rand = np.random.rand
indStart, indEnd = 200, 401
for i in range(indEnd):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-24 20:06:38
|
Revision: 5848
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5848&view=rev
Author: pkienzle
Date: 2008-07-24 20:06:36 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
dynamic_collection: collection now has private copy of array
Modified Paths:
--------------
trunk/matplotlib/examples/animation/dynamic_collection.py
Modified: trunk/matplotlib/examples/animation/dynamic_collection.py
===================================================================
--- trunk/matplotlib/examples/animation/dynamic_collection.py 2008-07-24 19:36:34 UTC (rev 5847)
+++ trunk/matplotlib/examples/animation/dynamic_collection.py 2008-07-24 20:06:36 UTC (rev 5848)
@@ -34,6 +34,8 @@
color = cm.jet(rand())
offsets.append((x,y))
facecolors.append(color)
+ collection.set_offsets(offsets)
+ collection.set_facecolors(facecolors)
fig.canvas.draw()
elif event.key=='d':
N = len(offsets)
@@ -41,6 +43,8 @@
ind = random.randint(0,N-1)
offsets.pop(ind)
facecolors.pop(ind)
+ collection.set_offsets(offsets)
+ collection.set_facecolors(facecolors)
fig.canvas.draw()
fig.canvas.mpl_connect('key_press_event', onpress)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-24 19:36:37
|
Revision: 5847
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5847&view=rev
Author: pkienzle
Date: 2008-07-24 19:36:34 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
nx is no longer a pylab symbol
Modified Paths:
--------------
trunk/matplotlib/examples/widgets/multicursor.py
Modified: trunk/matplotlib/examples/widgets/multicursor.py
===================================================================
--- trunk/matplotlib/examples/widgets/multicursor.py 2008-07-24 19:27:11 UTC (rev 5846)
+++ trunk/matplotlib/examples/widgets/multicursor.py 2008-07-24 19:36:34 UTC (rev 5847)
@@ -1,9 +1,9 @@
from matplotlib.widgets import MultiCursor
-from pylab import figure, show, nx
+from pylab import figure, show, pi, arange, sin
-t = nx.arange(0.0, 2.0, 0.01)
-s1 = nx.sin(2*nx.pi*t)
-s2 = nx.sin(4*nx.pi*t)
+t = arange(0.0, 2.0, 0.01)
+s1 = sin(2*pi*t)
+s2 = sin(4*pi*t)
fig = figure()
ax1 = fig.add_subplot(211)
ax1.plot(t, s1)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 19:27:13
|
Revision: 5846
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5846&view=rev
Author: jdh2358
Date: 2008-07-24 19:27:11 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Merged revisions 5845 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint
........
r5845 | jdh2358 | 2008-07-24 14:24:18 -0500 (Thu, 24 Jul 2008) | 1 line
bumped version num
........
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
- /branches/v0_91_maint:1-5843
+ /branches/v0_91_maint:1-5845
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 19:24:20
|
Revision: 5845
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5845&view=rev
Author: jdh2358
Date: 2008-07-24 19:24:18 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
bumped version num
Modified Paths:
--------------
branches/v0_91_maint/lib/matplotlib/__init__.py
Modified: branches/v0_91_maint/lib/matplotlib/__init__.py
===================================================================
--- branches/v0_91_maint/lib/matplotlib/__init__.py 2008-07-24 18:39:12 UTC (rev 5844)
+++ branches/v0_91_maint/lib/matplotlib/__init__.py 2008-07-24 19:24:18 UTC (rev 5845)
@@ -55,7 +55,7 @@
"""
from __future__ import generators
-__version__ = '0.91.4'
+__version__ = '0.91.5'
__revision__ = '$Revision$'
__date__ = '$Date$'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 18:39:14
|
Revision: 5844
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5844&view=rev
Author: jdh2358
Date: 2008-07-24 18:39:12 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Merged revisions 5843 via svnmerge from
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint
........
r5843 | jdh2358 | 2008-07-24 13:35:53 -0500 (Thu, 24 Jul 2008) | 1 line
updated api changes and changelog to reflect mlab2 deprecation
........
Property Changed:
----------------
trunk/matplotlib/
Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
- /branches/v0_91_maint:1-5835
+ /branches/v0_91_maint:1-5843
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 18:35:56
|
Revision: 5843
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5843&view=rev
Author: jdh2358
Date: 2008-07-24 18:35:53 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
updated api changes and changelog to reflect mlab2 deprecation
Modified Paths:
--------------
branches/v0_91_maint/CHANGELOG
Modified: branches/v0_91_maint/CHANGELOG
===================================================================
--- branches/v0_91_maint/CHANGELOG 2008-07-24 18:35:24 UTC (rev 5842)
+++ branches/v0_91_maint/CHANGELOG 2008-07-24 18:35:53 UTC (rev 5843)
@@ -1,3 +1,7 @@
+2008-07-24 Deprecated (raise NotImplementedError) all the mlab2
+ functions from matplotlib.mlab out of concern that some of
+ them were not clean room implementations. JDH
+
2008-07-16 Improve error handling in texmanager, thanks to Ian Henry
for reporting - DSD
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 18:35:27
|
Revision: 5842
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5842&view=rev
Author: jdh2358
Date: 2008-07-24 18:35:24 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
updated api changes and changelog to reflect mlab2 deprecation
Modified Paths:
--------------
trunk/matplotlib/API_CHANGES
trunk/matplotlib/CHANGELOG
Modified: trunk/matplotlib/API_CHANGES
===================================================================
--- trunk/matplotlib/API_CHANGES 2008-07-24 17:07:43 UTC (rev 5841)
+++ trunk/matplotlib/API_CHANGES 2008-07-24 18:35:24 UTC (rev 5842)
@@ -1,6 +1,11 @@
+
Changes for 0.98.x
==================
+* Deprecated (raise NotImplementedError) all the mlab2 functions from
+ matplotlib.mlab out of concern that some of them were not clean room
+ implementations.
+
* Methods get_offsets and set_offsets added to Collections base
class.
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG 2008-07-24 17:07:43 UTC (rev 5841)
+++ trunk/matplotlib/CHANGELOG 2008-07-24 18:35:24 UTC (rev 5842)
@@ -1,3 +1,7 @@
+2008-07-24 Deprecated (raise NotImplementedError) all the mlab2
+ functions from matplotlib.mlab out of concern that some of
+ them were not clean room implementations. JDH
+
2008-07-24 Rewrite of a significant portion of the clabel code (class
ContourLabeler) to improve inlining. - DMK
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-24 17:07:45
|
Revision: 5841
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5841&view=rev
Author: pkienzle
Date: 2008-07-24 17:07:43 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
locate xrc file relative to script
Modified Paths:
--------------
trunk/matplotlib/examples/user_interfaces/embedding_in_wx3.py
Modified: trunk/matplotlib/examples/user_interfaces/embedding_in_wx3.py
===================================================================
--- trunk/matplotlib/examples/user_interfaces/embedding_in_wx3.py 2008-07-24 15:39:41 UTC (rev 5840)
+++ trunk/matplotlib/examples/user_interfaces/embedding_in_wx3.py 2008-07-24 17:07:43 UTC (rev 5841)
@@ -96,7 +96,9 @@
class MyApp(App):
def OnInit(self):
- self.res = XmlResource("data/embedding_in_wx3.xrc")
+ xrcfile = os.path.join(os.path.dirname(__file__),"..","data",
+ "embedding_in_wx3.xrc")
+ self.res = XmlResource(xrcfile)
# main frame and panel ---------
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-24 15:39:44
|
Revision: 5840
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5840&view=rev
Author: pkienzle
Date: 2008-07-24 15:39:41 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Use bind() function to hide wx version differences
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-07-24 14:54:22 UTC (rev 5839)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-07-24 15:39:41 UTC (rev 5840)
@@ -145,6 +145,16 @@
# WxLogger =wx.LogStderr()
# sys.stderr = fake_stderr
+# Event binding code changed after version 2.5
+if wx.VERSION_STRING >= '2.5':
+ def bind(actor,event,action,**kw):
+ actor.Bind(event,action,**kw)
+else:
+ def bind(actor,event,action,id=None):
+ if id is not None:
+ event(actor, id, action)
+ else:
+ event(actor,action)
import matplotlib
from matplotlib import verbose
@@ -161,10 +171,6 @@
from matplotlib.widgets import SubplotTool
from matplotlib import rcParams
-##import wx
-##backend_version = wx.VERSION_STRING
-
-
# the True dots per inch on the screen; should be display dependent
# see http://groups.google.com/groups?q=screen+dpi+x11&hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&selm=7077.26e81ad5%40swift.cs.tcd.ie&rnum=5 for some info about screen dpi
PIXELS_PER_INCH = 75
@@ -698,40 +704,21 @@
self._isConfigured = False
self._printQued = []
- if wx.VERSION_STRING >= '2.5':
- # Event handlers 2.5
- self.Bind(wx.EVT_SIZE, self._onSize)
- self.Bind(wx.EVT_PAINT, self._onPaint)
- self.Bind(wx.EVT_KEY_DOWN, self._onKeyDown)
- self.Bind(wx.EVT_KEY_UP, self._onKeyUp)
- self.Bind(wx.EVT_RIGHT_DOWN, self._onRightButtonDown)
- self.Bind(wx.EVT_RIGHT_DCLICK, self._onRightButtonDown)
- self.Bind(wx.EVT_RIGHT_UP, self._onRightButtonUp)
- self.Bind(wx.EVT_MOUSEWHEEL, self._onMouseWheel)
- self.Bind(wx.EVT_LEFT_DOWN, self._onLeftButtonDown)
- self.Bind(wx.EVT_LEFT_DCLICK, self._onLeftButtonDown)
- self.Bind(wx.EVT_LEFT_UP, self._onLeftButtonUp)
- self.Bind(wx.EVT_MOTION, self._onMotion)
- self.Bind(wx.EVT_LEAVE_WINDOW, self._onLeave)
- self.Bind(wx.EVT_IDLE, self._onIdle)
- else:
- # Event handlers 2.4
- wx.EVT_SIZE(self, self._onSize)
- wx.EVT_PAINT(self, self._onPaint)
- wx.EVT_KEY_DOWN(self, self._onKeyDown)
- wx.EVT_KEY_UP(self, self._onKeyUp)
- wx.EVT_RIGHT_DOWN(self, self._onRightButtonDown)
- wx.EVT_RIGHT_DCLICK(self, self._onRightButtonDown)
- wx.EVT_RIGHT_UP(self, self._onRightButtonUp)
- wx.EVT_MOUSEWHEEL(self, self._onMouseWheel)
- wx.EVT_LEFT_DOWN(self, self._onLeftButtonDown)
- wx.EVT_LEFT_DCLICK(self, self._onLeftButtonDown)
- wx.EVT_LEFT_UP(self, self._onLeftButtonUp)
- wx.EVT_MOTION(self, self._onMotion)
- wx.EVT_LEAVE_WINDOW(self, self._onLeave)
- wx.EVT_IDLE(self, self._onIdle)
+ bind(self, wx.EVT_SIZE, self._onSize)
+ bind(self, wx.EVT_PAINT, self._onPaint)
+ bind(self, wx.EVT_KEY_DOWN, self._onKeyDown)
+ bind(self, wx.EVT_KEY_UP, self._onKeyUp)
+ bind(self, wx.EVT_RIGHT_DOWN, self._onRightButtonDown)
+ bind(self, wx.EVT_RIGHT_DCLICK, self._onRightButtonDown)
+ bind(self, wx.EVT_RIGHT_UP, self._onRightButtonUp)
+ bind(self, wx.EVT_MOUSEWHEEL, self._onMouseWheel)
+ bind(self, wx.EVT_LEFT_DOWN, self._onLeftButtonDown)
+ bind(self, wx.EVT_LEFT_DCLICK, self._onLeftButtonDown)
+ bind(self, wx.EVT_LEFT_UP, self._onLeftButtonUp)
+ bind(self, wx.EVT_MOTION, self._onMotion)
+ bind(self, wx.EVT_LEAVE_WINDOW, self._onLeave)
+ bind(self, wx.EVT_IDLE, self._onIdle)
-
self._event_loop = wx.EventLoop()
self.macros = {} # dict from wx id to seq of macros
@@ -1225,17 +1212,6 @@
if figManager is not None:
figManager.canvas.draw()
-# Event binding code changed after version 2.5
-if wx.VERSION_STRING >= '2.5':
- def bind(actor,event,action,**kw):
- actor.Bind(event,action,**kw)
-else:
- def bind(actor,event,action,id=None):
- if id is not None:
- event(actor, id, action)
- else:
- event(actor,action)
-
def show():
"""
Current implementation assumes that matplotlib is executed in a PyCrust
@@ -1333,12 +1309,7 @@
self.figmgr = FigureManagerWx(self.canvas, num, self)
- if wx.VERSION_STRING >= '2.5':
- # Event handlers 2.5
- self.Bind(wx.EVT_CLOSE, self._onClose)
- else:
- # Event handlers 2.4
- wx.EVT_CLOSE(self, self._onClose)
+ bind(self, wx.EVT_CLOSE, self._onClose)
def _get_toolbar(self, statbar):
if matplotlib.rcParams['toolbar']=='classic':
@@ -1485,14 +1456,9 @@
self._menu.Append(self._invertId, "Invert", "Invert axes selected", False)
self._menu.AppendSeparator()
- if wx.VERSION_STRING >= '2.5':
- self.Bind(wx.EVT_BUTTON, self._onMenuButton, id=_NTB_AXISMENU_BUTTON)
- self.Bind(wx.EVT_MENU, self._handleSelectAllAxes, id=self._allId)
- self.Bind(wx.EVT_MENU, self._handleInvertAxesSelected, id=self._invertId)
- else:
- wx.EVT_BUTTON(self, _NTB_AXISMENU_BUTTON, self._onMenuButton)
- wx.EVT_MENU(self, self._allId, self._handleSelectAllAxes)
- wx.EVT_MENU(self, self._invertId, self._handleInvertAxesSelected)
+ bind(self, wx.EVT_BUTTON, self._onMenuButton, id=_NTB_AXISMENU_BUTTON)
+ bind(self, wx.EVT_MENU, self._handleSelectAllAxes, id=self._allId)
+ bind(self, wx.EVT_MENU, self._handleInvertAxesSelected, id=self._invertId)
def Destroy(self):
self._menu.Destroy()
@@ -1546,11 +1512,7 @@
self._axisId.append(menuId)
self._menu.Append(menuId, "Axis %d" % i, "Select axis %d" % i, True)
self._menu.Check(menuId, True)
-
- if wx.VERSION_STRING >= '2.5':
- self.Bind(wx.EVT_MENU, self._onMenuItemSelected, id=menuId)
- else:
- wx.EVT_MENU(self, menuId, self._onMenuItemSelected)
+ bind(self, wx.EVT_MENU, self._onMenuItemSelected, id=menuId)
self._toolbar.set_active(range(len(self._axisId)))
def getActiveAxes(self):
@@ -1645,22 +1607,13 @@
self.AddSimpleTool(_NTB2_SAVE, _load_bitmap('filesave.png'),
'Save', 'Save plot contents to file')
- if wx.VERSION_STRING >= '2.5':
- self.Bind(wx.EVT_TOOL, self.home, id=_NTB2_HOME)
- self.Bind(wx.EVT_TOOL, self.forward, id=self._NTB2_FORWARD)
- self.Bind(wx.EVT_TOOL, self.back, id=self._NTB2_BACK)
- self.Bind(wx.EVT_TOOL, self.zoom, id=self._NTB2_ZOOM)
- self.Bind(wx.EVT_TOOL, self.pan, id=self._NTB2_PAN)
- self.Bind(wx.EVT_TOOL, self.configure_subplot, id=_NTB2_SUBPLOT)
- self.Bind(wx.EVT_TOOL, self.save, id=_NTB2_SAVE)
- else:
- wx.EVT_TOOL(self, _NTB2_HOME, self.home)
- wx.EVT_TOOL(self, self._NTB2_FORWARD, self.forward)
- wx.EVT_TOOL(self, self._NTB2_BACK, self.back)
- wx.EVT_TOOL(self, self._NTB2_ZOOM, self.zoom)
- wx.EVT_TOOL(self, self._NTB2_PAN, self.pan)
- wx.EVT_TOOL(self, _NTB2_SUBPLOT, self.configure_subplot)
- wx.EVT_TOOL(self, _NTB2_SAVE, self.save)
+ bind(self, wx.EVT_TOOL, self.home, id=_NTB2_HOME)
+ bind(self, wx.EVT_TOOL, self.forward, id=self._NTB2_FORWARD)
+ bind(self, wx.EVT_TOOL, self.back, id=self._NTB2_BACK)
+ bind(self, wx.EVT_TOOL, self.zoom, id=self._NTB2_ZOOM)
+ bind(self, wx.EVT_TOOL, self.pan, id=self._NTB2_PAN)
+ bind(self, wx.EVT_TOOL, self.configure_subplot, id=_NTB2_SUBPLOT)
+ bind(self, wx.EVT_TOOL, self.save, id=_NTB2_SAVE)
self.Realize()
@@ -1859,34 +1812,19 @@
'Save', 'Save plot contents as images')
self.AddSeparator()
- if wx.VERSION_STRING >= '2.5':
- self.Bind(wx.EVT_TOOL, self._onLeftScroll, id=_NTB_X_PAN_LEFT)
- self.Bind(wx.EVT_TOOL, self._onRightScroll, id=_NTB_X_PAN_RIGHT)
- self.Bind(wx.EVT_TOOL, self._onXZoomIn, id=_NTB_X_ZOOMIN)
- self.Bind(wx.EVT_TOOL, self._onXZoomOut, id=_NTB_X_ZOOMOUT)
- self.Bind(wx.EVT_TOOL, self._onUpScroll, id=_NTB_Y_PAN_UP)
- self.Bind(wx.EVT_TOOL, self._onDownScroll, id=_NTB_Y_PAN_DOWN)
- self.Bind(wx.EVT_TOOL, self._onYZoomIn, id=_NTB_Y_ZOOMIN)
- self.Bind(wx.EVT_TOOL, self._onYZoomOut, id=_NTB_Y_ZOOMOUT)
- self.Bind(wx.EVT_TOOL, self._onSave, id=_NTB_SAVE)
- self.Bind(wx.EVT_TOOL_ENTER, self._onEnterTool, id=self.GetId())
- if can_kill:
- self.Bind(wx.EVT_TOOL, self._onClose, id=_NTB_CLOSE)
- self.Bind(wx.EVT_MOUSEWHEEL, self._onMouseWheel)
- else:
- wx.EVT_TOOL(self, _NTB_X_PAN_LEFT, self._onLeftScroll)
- wx.EVT_TOOL(self, _NTB_X_PAN_RIGHT, self._onRightScroll)
- wx.EVT_TOOL(self, _NTB_X_ZOOMIN, self._onXZoomIn)
- wx.EVT_TOOL(self, _NTB_X_ZOOMOUT, self._onXZoomOut)
- wx.EVT_TOOL(self, _NTB_Y_PAN_UP, self._onUpScroll)
- wx.EVT_TOOL(self, _NTB_Y_PAN_DOWN, self._onDownScroll)
- wx.EVT_TOOL(self, _NTB_Y_ZOOMIN, self._onYZoomIn)
- wx.EVT_TOOL(self, _NTB_Y_ZOOMOUT, self._onYZoomOut)
- wx.EVT_TOOL(self, _NTB_SAVE, self._onSave)
- wx.EVT_TOOL_ENTER(self, self.GetId(), self._onEnterTool)
- if can_kill:
- wx.EVT_TOOL(self, _NTB_CLOSE, self._onClose)
- wx.EVT_MOUSEWHEEL(self, self._onMouseWheel)
+ bind(self, wx.EVT_TOOL, self._onLeftScroll, id=_NTB_X_PAN_LEFT)
+ bind(self, wx.EVT_TOOL, self._onRightScroll, id=_NTB_X_PAN_RIGHT)
+ bind(self, wx.EVT_TOOL, self._onXZoomIn, id=_NTB_X_ZOOMIN)
+ bind(self, wx.EVT_TOOL, self._onXZoomOut, id=_NTB_X_ZOOMOUT)
+ bind(self, wx.EVT_TOOL, self._onUpScroll, id=_NTB_Y_PAN_UP)
+ bind(self, wx.EVT_TOOL, self._onDownScroll, id=_NTB_Y_PAN_DOWN)
+ bind(self, wx.EVT_TOOL, self._onYZoomIn, id=_NTB_Y_ZOOMIN)
+ bind(self, wx.EVT_TOOL, self._onYZoomOut, id=_NTB_Y_ZOOMOUT)
+ bind(self, wx.EVT_TOOL, self._onSave, id=_NTB_SAVE)
+ bind(self, wx.EVT_TOOL_ENTER, self._onEnterTool, id=self.GetId())
+ if can_kill:
+ bind(self, wx.EVT_TOOL, self._onClose, id=_NTB_CLOSE)
+ bind(self, wx.EVT_MOUSEWHEEL, self._onMouseWheel)
def set_active(self, ind):
"""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-24 14:54:24
|
Revision: 5839
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5839&view=rev
Author: pkienzle
Date: 2008-07-24 14:54:22 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Fix wx start/stop event loop
Modified Paths:
--------------
trunk/matplotlib/examples/pylab_examples/ginput_demo.py
trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py
Modified: trunk/matplotlib/examples/pylab_examples/ginput_demo.py
===================================================================
--- trunk/matplotlib/examples/pylab_examples/ginput_demo.py 2008-07-24 14:22:20 UTC (rev 5838)
+++ trunk/matplotlib/examples/pylab_examples/ginput_demo.py 2008-07-24 14:54:22 UTC (rev 5839)
@@ -2,5 +2,6 @@
t = arange(10)
plot(t, sin(t))
print "Please click"
-x = ginput(3, verbose=True)
+x = ginput(3)
+print "clicked",x
show()
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-07-24 14:22:20 UTC (rev 5838)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-07-24 14:54:22 UTC (rev 5839)
@@ -732,6 +732,8 @@
wx.EVT_IDLE(self, self._onIdle)
+ self._event_loop = wx.EventLoop()
+
self.macros = {} # dict from wx id to seq of macros
self.Printer_Init()
@@ -907,6 +909,44 @@
def flush_events(self):
wx.Yield()
+ def start_event_loop(self, timeout=0):
+ """
+ Start an event loop. This is used to start a blocking event
+ loop so that interactive functions, such as ginput and
+ waitforbuttonpress, can wait for events. This should not be
+ confused with the main GUI event loop, which is always running
+ and has nothing to do with this.
+
+ Call signature::
+
+ start_event_loop(self,timeout=0)
+
+ This call blocks until a callback function triggers
+ stop_event_loop() or *timeout* is reached. If *timeout* is
+ <=0, never timeout.
+ """
+ id = wx.NewId()
+ timer = wx.Timer(self, id=id)
+ if timeout > 0:
+ timer.Start(timeout*1000, oneShot=True)
+ bind(self, wx.EVT_TIMER, self.stop_event_loop, id=id)
+ self._event_loop.Run()
+ timer.Stop()
+
+ def stop_event_loop(self, event=None):
+ """
+ Stop an event loop. This is used to stop a blocking event
+ loop so that interactive functions, such as ginput and
+ waitforbuttonpress, can wait for events.
+
+ Call signature::
+
+ stop_event_loop_default(self)
+ """
+ if self._event_loop.IsRunning():
+ self._event_loop.Exit()
+
+
def _get_imagesave_wildcards(self):
'return the wildcard string for the filesave dialog'
default_filetype = self.get_default_filetype()
@@ -1185,46 +1225,6 @@
if figManager is not None:
figManager.canvas.draw()
- def start_event_loop(self, timeout=0):
- """
- Start an event loop. This is used to start a blocking event
- loop so that interactive functions, such as ginput and
- waitforbuttonpress, can wait for events. This should not be
- confused with the main GUI event loop, which is always running
- and has nothing to do with this.
-
- Call signature::
-
- start_event_loop(self,timeout=0)
-
- This call blocks until a callback function triggers
- stop_event_loop() or *timeout* is reached. If *timeout* is
- <=0, never timeout.
- """
- root = self.GetTopLevelParent()
- bind(root, wx.EVT_CLOSE, self.stop_event_loop)
-
- id = wx.NewId()
- timer = wx.Timer(self, id=id)
- if timeout > 0:
- timer.Start(timeout*1000, oneShot=True)
- bind(self, wx.EVT_TIMER, self.stop_event_loop, id=id)
- self._event_loop.Run()
- timer.Stop()
-
- def stop_event_loop(self, event=None):
- """
- Stop an event loop. This is used to stop a blocking event
- loop so that interactive functions, such as ginput and
- waitforbuttonpress, can wait for events.
-
- Call signature::
-
- stop_event_loop_default(self)
- """
- if self._event_loop.IsRunning():
- self._event_loop.Exit()
-
# Event binding code changed after version 2.5
if wx.VERSION_STRING >= '2.5':
def bind(actor,event,action,**kw):
@@ -1359,6 +1359,7 @@
def _onClose(self, evt):
DEBUG_MSG("onClose()", 1, self)
+ self.canvas.stop_event_loop()
Gcf.destroy(self.num)
#self.Destroy()
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py 2008-07-24 14:22:20 UTC (rev 5838)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py 2008-07-24 14:54:22 UTC (rev 5839)
@@ -41,7 +41,7 @@
toolbar = None
return toolbar
-class FigureCanvasWxAgg(FigureCanvasAgg, FigureCanvasWx):
+class FigureCanvasWxAgg(FigureCanvasWx, FigureCanvasAgg):
"""
The FigureCanvas contains the figure and does event handling.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dmk...@us...> - 2008-07-24 14:22:23
|
Revision: 5838
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5838&view=rev
Author: dmkaplan
Date: 2008-07-24 14:22:20 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
Minor changes in response to comments by John Hunter on empty lists in python
args and avoiding unspecified argument lists.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/backend_bases.py
trunk/matplotlib/lib/matplotlib/backends/backend_cocoaagg.py
trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py
trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py
trunk/matplotlib/lib/matplotlib/backends/backend_qt.py
trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py
trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py
trunk/matplotlib/lib/matplotlib/blocking_input.py
trunk/matplotlib/lib/matplotlib/contour.py
Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -1391,7 +1391,7 @@
"""
raise NotImplementedError
- def start_event_loop(self,*args,**kwargs):
+ def start_event_loop(self,timeout):
"""
Start an event loop. This is used to start a blocking event
loop so that interactive functions, such as ginput and
@@ -1403,7 +1403,7 @@
"""
raise NotImplementedError
- def stop_event_loop(self,*args,**kwargs):
+ def stop_event_loop(self):
"""
Stop an event loop. This is used to stop a blocking event
loop so that interactive functions, such as ginput and
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_cocoaagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_cocoaagg.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_cocoaagg.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -58,12 +58,12 @@
def blit(self, bbox):
pass
- def start_event_loop(self,*args,**kwargs):
- FigureCanvasBase.start_event_loop_default(self,*args,**kwargs)
+ def start_event_loop(self,timeout):
+ FigureCanvasBase.start_event_loop_default(self,timeout)
start_event_loop.__doc__=FigureCanvasBase.start_event_loop_default.__doc__
- def stop_event_loop(self,*args,**kwargs):
- FigureCanvasBase.stop_event_loop_default(self,*args,**kwargs)
+ def stop_event_loop(self):
+ FigureCanvasBase.stop_event_loop_default(self)
stop_event_loop.__doc__=FigureCanvasBase.stop_event_loop_default.__doc__
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_fltkagg.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -247,12 +247,12 @@
def widget(self):
return self.canvas
- def start_event_loop(self,*args,**kwargs):
- FigureCanvasBase.start_event_loop_default(self,*args,**kwargs)
+ def start_event_loop(self,timeout):
+ FigureCanvasBase.start_event_loop_default(self,timeout)
start_event_loop.__doc__=FigureCanvasBase.start_event_loop_default.__doc__
- def stop_event_loop(self,*args,**kwargs):
- FigureCanvasBase.stop_event_loop_default(self,*args,**kwargs)
+ def stop_event_loop(self):
+ FigureCanvasBase.stop_event_loop_default(self)
stop_event_loop.__doc__=FigureCanvasBase.stop_event_loop_default.__doc__
def destroy_figure(ptr,figman):
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -396,12 +396,12 @@
gtk.gdk.flush()
gtk.gdk.threads_leave()
- def start_event_loop(self,*args,**kwargs):
- FigureCanvasBase.start_event_loop_default(self,*args,**kwargs)
+ def start_event_loop(self,timeout):
+ FigureCanvasBase.start_event_loop_default(self,timeout)
start_event_loop.__doc__=FigureCanvasBase.start_event_loop_default.__doc__
- def stop_event_loop(self,*args,**kwargs):
- FigureCanvasBase.stop_event_loop_default(self,*args,**kwargs)
+ def stop_event_loop(self):
+ FigureCanvasBase.stop_event_loop_default(self)
stop_event_loop.__doc__=FigureCanvasBase.stop_event_loop_default.__doc__
class FigureManagerGTK(FigureManagerBase):
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -177,12 +177,12 @@
def flush_events(self):
qt.qApp.processEvents()
- def start_event_loop(self,*args,**kwargs):
- FigureCanvasBase.start_event_loop_default(self,*args,**kwargs)
+ def start_event_loop(self,timeout):
+ FigureCanvasBase.start_event_loop_default(self,timeout)
start_event_loop.__doc__=FigureCanvasBase.start_event_loop_default.__doc__
- def stop_event_loop(self,*args,**kwargs):
- FigureCanvasBase.stop_event_loop_default(self,*args,**kwargs)
+ def stop_event_loop(self):
+ FigureCanvasBase.stop_event_loop_default(self)
stop_event_loop.__doc__=FigureCanvasBase.stop_event_loop_default.__doc__
class FigureManagerQT( FigureManagerBase ):
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -181,12 +181,12 @@
def flush_events(self):
Qt.qApp.processEvents()
- def start_event_loop(self,*args,**kwargs):
- FigureCanvasBase.start_event_loop_default(self,*args,**kwargs)
+ def start_event_loop(self,timeout):
+ FigureCanvasBase.start_event_loop_default(self,timeout)
start_event_loop.__doc__=FigureCanvasBase.start_event_loop_default.__doc__
- def stop_event_loop(self,*args,**kwargs):
- FigureCanvasBase.stop_event_loop_default(self,*args,**kwargs)
+ def stop_event_loop(self):
+ FigureCanvasBase.stop_event_loop_default(self)
stop_event_loop.__doc__=FigureCanvasBase.stop_event_loop_default.__doc__
class FigureManagerQT( FigureManagerBase ):
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_tkagg.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -287,12 +287,12 @@
def flush_events(self):
self._master.update()
- def start_event_loop(self,*args,**kwargs):
- FigureCanvasBase.start_event_loop_default(self,*args,**kwargs)
+ def start_event_loop(self,timeout):
+ FigureCanvasBase.start_event_loop_default(self,timeout)
start_event_loop.__doc__=FigureCanvasBase.start_event_loop_default.__doc__
- def stop_event_loop(self,*args,**kwargs):
- FigureCanvasBase.stop_event_loop_default(self,*args,**kwargs)
+ def stop_event_loop(self):
+ FigureCanvasBase.stop_event_loop_default(self)
stop_event_loop.__doc__=FigureCanvasBase.stop_event_loop_default.__doc__
class FigureManagerTkAgg(FigureManagerBase):
Modified: trunk/matplotlib/lib/matplotlib/blocking_input.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/blocking_input.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/blocking_input.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -283,13 +283,11 @@
"""
# Figure out label rotation.
if self.inline: lcarg = lc
- else: lcarg = []
+ else: lcarg = None
rotation,nlc = cs.calc_label_rot_and_inline(
slc, imin, lw, lcarg,
self.inline_spacing )
-
-
cs.add_label(xmin,ymin,rotation,cs.labelLevelList[lmin],
cs.labelCValueList[lmin])
Modified: trunk/matplotlib/lib/matplotlib/contour.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/contour.py 2008-07-24 13:39:34 UTC (rev 5837)
+++ trunk/matplotlib/lib/matplotlib/contour.py 2008-07-24 14:22:20 UTC (rev 5838)
@@ -485,7 +485,7 @@
x,y,ind = self.locate_label(slc, lw)
if inline: lcarg = lc
- else: lcarg = []
+ else: lcarg = None
rotation,new=self.calc_label_rot_and_inline(
slc0, ind, lw, lcarg,
inline_spacing )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-07-24 13:39:38
|
Revision: 5837
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5837&view=rev
Author: jdh2358
Date: 2008-07-24 13:39:34 +0000 (Thu, 24 Jul 2008)
Log Message:
-----------
removed mlab fix from pylab -- previously deprecated
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/__init__.py
trunk/matplotlib/lib/matplotlib/pylab.py
Modified: trunk/matplotlib/lib/matplotlib/__init__.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/__init__.py 2008-07-24 13:30:53 UTC (rev 5836)
+++ trunk/matplotlib/lib/matplotlib/__init__.py 2008-07-24 13:39:34 UTC (rev 5837)
@@ -89,7 +89,7 @@
"""
from __future__ import generators
-__version__ = '0.98.3'
+__version__ = '0.98.3rc1'
__revision__ = '$Revision$'
__date__ = '$Date$'
Modified: trunk/matplotlib/lib/matplotlib/pylab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pylab.py 2008-07-24 13:30:53 UTC (rev 5836)
+++ trunk/matplotlib/lib/matplotlib/pylab.py 2008-07-24 13:39:34 UTC (rev 5837)
@@ -221,7 +221,7 @@
from matplotlib.mlab import window_hanning, window_none,\
conv, detrend, detrend_mean, detrend_none, detrend_linear,\
polyfit, polyval, entropy, normpdf, griddata,\
- levypdf, find, trapz, prepca, fix, rem, norm, orth, rank,\
+ levypdf, find, trapz, prepca, rem, norm, orth, rank,\
sqrtm, prctile, center_matrix, rk4, exp_safe, amap,\
sum_flat, mean_flat, rms_flat, l1norm, l2norm, norm, frange,\
diagonal_matrix, base_repr, binary_repr, log2, ispower2,\
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|