Revision: 7020
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7020&view=rev
Author:   jrevans
Date:     2009-04-01 17:28:11 +0000 (Wed, 01 Apr 2009)

Log Message:
-----------
Updated 'fill' to handle unitized data.  Added a unit-test for it.

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/axes.py
    trunk/matplotlib/test/mplTest/units/__init__.py

Added Paths:
-----------
    trunk/matplotlib/test/test_plots/TestFill.py
    trunk/matplotlib/test/test_plots/baseline/TestFill/
    trunk/matplotlib/test/test_plots/baseline/TestFill/fill_units.png

Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py     2009-03-31 17:59:53 UTC (rev 
7019)
+++ trunk/matplotlib/lib/matplotlib/axes.py     2009-04-01 17:28:11 UTC (rev 
7020)
@@ -216,9 +216,10 @@
         if self.axes.xaxis is not None and self.axes.yaxis is not None:
             bx = self.axes.xaxis.update_units(x)
             by = self.axes.yaxis.update_units(y)
-            # right now multicol is not supported if either x or y are
-            # unit enabled but this can be fixed..
-            if bx or by: return x, y, False
+            if bx:
+                x = self.axes.convert_xunits(x)
+            if by:
+                y = self.axes.convert_yunits(y)
 
         x = ma.asarray(x)
         y = ma.asarray(y)
@@ -310,8 +311,6 @@
                 ret.append(seg)
 
             def makefill(x, y):
-                x = self.axes.convert_xunits(x)
-                y = self.axes.convert_yunits(y)
                 facecolor = self._get_next_cycle_color()
                 seg = mpatches.Polygon(np.hstack(
                                     (x[:,np.newaxis],y[:,np.newaxis])),
@@ -358,8 +357,6 @@
 
         def makefill(x, y):
             facecolor = color
-            x = self.axes.convert_xunits(x)
-            y = self.axes.convert_yunits(y)
             seg = mpatches.Polygon(np.hstack(
                                     (x[:,np.newaxis],y[:,np.newaxis])),
                           facecolor = facecolor,

Modified: trunk/matplotlib/test/mplTest/units/__init__.py
===================================================================
--- trunk/matplotlib/test/mplTest/units/__init__.py     2009-03-31 17:59:53 UTC 
(rev 7019)
+++ trunk/matplotlib/test/mplTest/units/__init__.py     2009-04-01 17:28:11 UTC 
(rev 7020)
@@ -71,6 +71,7 @@
 
 # Angles
 deg = UnitDbl( 1.0, "deg" )
+rad = UnitDbl( 1.0, "rad" )
 
 # Time
 sec = UnitDbl( 1.0, "sec" )

Added: trunk/matplotlib/test/test_plots/TestFill.py
===================================================================
--- trunk/matplotlib/test/test_plots/TestFill.py                                
(rev 0)
+++ trunk/matplotlib/test/test_plots/TestFill.py        2009-04-01 17:28:11 UTC 
(rev 7020)
@@ -0,0 +1,87 @@
+#=======================================================================
+"""The Fill unit-test class implementation."""
+#=======================================================================
+
+from mplTest import *
+
+#=======================================================================
+# Add import modules below.
+import matplotlib
+matplotlib.use( "Agg", warn = False )
+
+import pylab
+import numpy as npy
+from datetime import datetime
+#
+#=======================================================================
+
+#=======================================================================
+class TestFill( MplTestCase ):
+   """Test the various axes fill methods."""
+
+   # Uncomment any appropriate tags
+   tags = [
+            # 'gui',        # requires the creation of a gui window
+            'agg',        # uses agg in the backend
+            'agg-only',   # uses only agg in the backend
+            # 'wx',         # uses wx in the backend
+            # 'qt',         # uses qt in the backend
+            # 'ps',         # uses the postscript backend
+            # 'units',      # uses units in the test
+            'PIL',        # uses PIL for image comparison
+          ]
+
+   #--------------------------------------------------------------------
+   def setUp( self ):
+      """Setup any data needed for the unit test."""
+      units.register()
+
+   #--------------------------------------------------------------------
+   def tearDown( self ):
+      """Clean-up any generated files here."""
+      pass
+
+   #--------------------------------------------------------------------
+   def test_fill_units( self ):
+      """Test the fill method with unitized-data."""
+
+      fname = self.outFile( "fill_units.png" )
+
+      # generate some data
+      t = units.Epoch( "ET", dt=datetime(2009, 4, 27) )
+      value = 10.0 * units.deg
+      day = units.Duration( "ET", 24.0 * 60.0 * 60.0 )
+
+      fig = pylab.figure()
+
+      # Top-Left
+      ax1 = fig.add_subplot( 221 )
+      ax1.plot( [t], [value], yunits='deg', color='red' )
+      ax1.fill( [733525.0, 733525.0, 733526.0, 733526.0],
+                [0.0, 0.0, 90.0, 0.0], 'b' )
+
+      # Top-Right
+      ax2 = fig.add_subplot( 222 )
+      ax2.plot( [t], [value], yunits='deg', color='red' )
+      ax2.fill( [t,      t,      t+day,     t+day],
+                [0.0,  0.0,  90.0,    0.0], 'b' )
+
+      # Bottom-Left
+      ax3 = fig.add_subplot( 223 )
+      ax3.plot( [t], [value], yunits='deg', color='red' )
+      ax1.fill( [733525.0, 733525.0, 733526.0, 733526.0],
+                [0*units.deg,  0*units.deg,  90*units.deg,    0*units.deg], 
'b' )
+
+      # Bottom-Right
+      ax4 = fig.add_subplot( 224 )
+      ax4.plot( [t], [value], yunits='deg', color='red' )
+      ax4.fill( [t,      t,      t+day,     t+day],
+                [0*units.deg,  0*units.deg,  90*units.deg,    0*units.deg],
+                facecolor="blue" )
+
+      fig.autofmt_xdate()
+      fig.savefig( fname )
+      self.checkImage( fname )
+
+   #--------------------------------------------------------------------
+

Added: trunk/matplotlib/test/test_plots/baseline/TestFill/fill_units.png
===================================================================
(Binary files differ)


Property changes on: 
trunk/matplotlib/test/test_plots/baseline/TestFill/fill_units.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to