Revision: 6648
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6648&view=rev
Author: jdh2358
Date: 2008-12-17 14:57:28 +0000 (Wed, 17 Dec 2008)
Log Message:
-----------
added some threshold crossing helper funcs to mlab
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/mlab.py
Modified: trunk/matplotlib/lib/matplotlib/mlab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/mlab.py 2008-12-17 14:55:42 UTC (rev
6647)
+++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-12-17 14:57:28 UTC (rev
6648)
@@ -54,6 +54,16 @@
yourself stranded without scipy (and the far superior
scipy.integrate tools)
+:meth:`contiguous_regions`
+ return the indices of the regions spanned by some logical mask
+
+:meth:`cross_from_below`
+ return the indices where a 1D array crosses a threshold from below
+
+:meth:`cross_from_above`
+ return the indices where a 1D array crosses a threshold from above
+
+
record array helper functions
-------------------------------
@@ -3236,6 +3246,63 @@
boundaries.append((in_region, i+1))
return boundaries
+
+def cross_from_below(x, threshold):
+ """
+ return the indices into *x* where *x* crosses some threshold from
+ below, eg the i's where::
+
+ x[i-1]<threshold and x[i]>=threshold
+
+ Example code::
+
+ import matplotlib.pyplot as plt
+
+ t = np.arange(0.0, 2.0, 0.1)
+ s = np.sin(2*np.pi*t)
+
+ fig = plt.figure()
+ ax = fig.add_subplot(111)
+ ax.plot(t, s, '-o')
+ ax.axhline(0.5)
+ ax.axhline(-0.5)
+
+ ind = cross_from_below(s, 0.5)
+ ax.vlines(t[ind], -1, 1)
+
+ ind = cross_from_above(s, -0.5)
+ ax.vlines(t[ind], -1, 1)
+
+ plt.show()
+
+ .. seealso::
+
+ :func:`cross_from_above` and :func:`contiguous_regions`
+
+ """
+ x = np.asarray(x)
+ threshold = threshold
+ ind = np.nonzero( (x[:-1]<threshold) & (x[1:]>=threshold))[0]
+ if len(ind): return ind+1
+ else: return ind
+
+def cross_from_above(x, threshold):
+ """
+ return the indices into *x* where *x* crosses some threshold from
+ below, eg the i's where::
+
+ x[i-1]>threshold and x[i]<=threshold
+
+ .. seealso::
+
+ :func:`cross_from_below` and :func:`contiguous_regions`
+
+ """
+ x = np.asarray(x)
+ ind = np.nonzero( (x[:-1]>=threshold) & (x[1:]<threshold))[0]
+ if len(ind): return ind+1
+ else: return ind
+
##################################################
# Vector and path length geometry calculations
##################################################
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you. Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins