Revision: 4669
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4669&view=rev
Author:   mdboom
Date:     2007-12-07 11:18:02 -0800 (Fri, 07 Dec 2007)

Log Message:
-----------
Merged revisions 4653-4668 via svnmerge from 
http://matplotlib.svn.sf.net/svnroot/matplotlib/trunk/matplotlib

........
  r4653 | mdboom | 2007-12-06 14:10:12 -0500 (Thu, 06 Dec 2007) | 2 lines
  
  [ 1841933 ] font_manager.win32FontDirectory() fails as Vista service
........
  r4654 | dsdale | 2007-12-06 14:18:49 -0500 (Thu, 06 Dec 2007) | 2 lines
  
  updated references to mpl data directories for py2exe
........
  r4658 | dsdale | 2007-12-06 17:28:27 -0500 (Thu, 06 Dec 2007) | 4 lines
  
  let widgets.Cursor initialize to the lower x and y bounds
  rather than 0,0, which can cause havoc for dates and other
  transforms
........
  r4665 | efiring | 2007-12-07 02:12:33 -0500 (Fri, 07 Dec 2007) | 2 lines
  
  Clarify docstrings on Subplot classes; closes 1659419
........
  r4667 | mdboom | 2007-12-07 14:05:11 -0500 (Fri, 07 Dec 2007) | 4 lines
  
  [ 1697287 ] imshow on log axes broken if axes limits != image extent
  Adds a warning when an image is used on non-linear axes.  Doesn't
  really address the problem (see bug report for the reason.)
........

Modified Paths:
--------------
    branches/transforms/CHANGELOG
    branches/transforms/lib/matplotlib/__init__.py
    branches/transforms/lib/matplotlib/axes.py
    branches/transforms/lib/matplotlib/config/cutils.py
    branches/transforms/lib/matplotlib/figure.py
    branches/transforms/lib/matplotlib/font_manager.py
    branches/transforms/lib/matplotlib/image.py
    branches/transforms/lib/matplotlib/widgets.py

Property Changed:
----------------
    branches/transforms/


Property changes on: branches/transforms
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk/matplotlib:1-4652
   + /trunk/matplotlib:1-4668

Modified: branches/transforms/CHANGELOG
===================================================================
--- branches/transforms/CHANGELOG       2007-12-07 19:09:52 UTC (rev 4668)
+++ branches/transforms/CHANGELOG       2007-12-07 19:18:02 UTC (rev 4669)
@@ -1,3 +1,9 @@
+2007-12-06 let widgets.Cursor initialize to the lower x and y bounds
+           rather than 0,0, which can cause havoc for dates and other
+           transforms - DSD
+
+2007-12-06 updated references to mpl data directories for py2exe - DSD
+
 2007-12-06 fixed a bug in rcsetup, see bug 1845057 - DSD
 
 ===============================================================
@@ -11,8 +17,8 @@
           object in place of a file path. - MGD
 
 2007-11-13 Improved the default backend selection at build time:
-           SVG -> Agg -> TkAgg -> WXAgg -> GTK -> GTKAgg. The last usable 
-           backend in this progression will be chosen in the default 
+           SVG -> Agg -> TkAgg -> WXAgg -> GTK -> GTKAgg. The last usable
+           backend in this progression will be chosen in the default
            config file. If a backend is defined in setup.cfg, that will
            be the default backend - DSD
 
@@ -22,41 +28,41 @@
 2007-11-12 Exposed all the build options in setup.cfg. These options are
            read into a dict called "options" by setupext.py. Also, added
            "-mpl" tags to the version strings for packages provided by
-           matplotlib. Versions provided by mpl will be identified and 
+           matplotlib. Versions provided by mpl will be identified and
            updated on subsequent installs - DSD
 
 2007-11-12 Added support for STIX fonts.  A new rcParam,
-          mathtext.fontset, can be used to choose between: 
-           
+          mathtext.fontset, can be used to choose between:
+
           'cm':
-            The TeX/LaTeX Computer Modern fonts 
+            The TeX/LaTeX Computer Modern fonts
 
-          'stix': 
+          'stix':
             The STIX fonts (see stixfonts.org)
 
-          'stixsans': 
-            The STIX fonts, using sans-serif glyphs by default 
+          'stixsans':
+            The STIX fonts, using sans-serif glyphs by default
 
-          'custom': 
+          'custom':
             A generic Unicode font, in which case the mathtext font
             must be specified using mathtext.bf, mathtext.it,
             mathtext.sf etc.
-            
+
           Added a new example, stix_fonts_demo.py to show how to access
           different fonts and unusual symbols.
-           
+
            - MGD
 
-2007-11-12 Options to disable building backend extension modules moved 
+2007-11-12 Options to disable building backend extension modules moved
            from setup.py to setup.cfg - DSD
 
 2007-11-09 Applied Martin Teichmann's patch 1828813: a QPainter is used in
-           paintEvent, which has to be destroyed using  the method end(). If 
-           matplotlib raises an exception before the call to end - and it 
-           does if you feed it with bad data - this method end() is never 
+           paintEvent, which has to be destroyed using  the method end(). If
+           matplotlib raises an exception before the call to end - and it
+           does if you feed it with bad data - this method end() is never
            called and Qt4 will start spitting error messages
 
-2007-11-09 Moved pyparsing back into matplotlib namespace. Don't use 
+2007-11-09 Moved pyparsing back into matplotlib namespace. Don't use
            system pyparsing, API is too variable from one release
            to the next - DSD
 
@@ -101,7 +107,7 @@
 
           The transformation framework was completely rewritten in
           Python (with Numpy).  This will make it easier to add news
-          kinds of transformations without writing C/C++ code.  
+          kinds of transformations without writing C/C++ code.
 
           Transforms are composed into a 'transform tree', made of
           transforms whose value depends on other transforms (their
@@ -133,7 +139,7 @@
           the backends more consistent in terms of functionality.
 
           User visible changes:
-          
+
           - POLAR PLOTS: Polar plots are now interactively zoomable,
              and the r-axis labels can be interactively rotated.
              Straight line segments are now interpolated to follow the
@@ -141,21 +147,21 @@
 
           - Non-rectangular clipping works in more backends and with
              more types of objects.
-            
+
           - Sharing an axis across figures is now done in exactly
             the same way as sharing an axis between two axes in the
             same figure:
-          
+
                   fig1 = figure()
                   fig2 = figure()
 
                   ax1 = fig1.add_subplot(111)
                   ax2 = fig2.add_subplot(111, sharex=ax1, sharey=ax1)
-                  
+
            - linestyles now include steps-pre, steps-post and
              steps-mid.  The old step still works and is equivalent to
              step-pre.
-            
+
           - Multiple line styles may be provided to a collection.
 
           See API_CHANGES for more low-level information about this

Modified: branches/transforms/lib/matplotlib/__init__.py
===================================================================
--- branches/transforms/lib/matplotlib/__init__.py      2007-12-07 19:09:52 UTC 
(rev 4668)
+++ branches/transforms/lib/matplotlib/__init__.py      2007-12-07 19:18:02 UTC 
(rev 4669)
@@ -428,11 +428,16 @@
 
     # py2exe zips pure python, so still need special check
     if getattr(sys,'frozen',None):
-        path = os.path.join(os.path.split(sys.path[0])[0], 'matplotlibdata')
+        path = os.path.join(os.path.split(sys.path[0])[0], 'mpl-data')
         if os.path.isdir(path): return path
         else:
+            # Try again assuming we need to step up one more directory
+            path = 
os.path.join(os.path.split(os.path.split(sys.path[0])[0])[0],
+                                'mpl-data')
+        if os.path.isdir(path): return path
+        else:
             # Try again assuming sys.path[0] is a dir not a exe
-            path = os.path.join(sys.path[0], 'matplotlibdata')
+            path = os.path.join(sys.path[0], 'mpl-data')
             if os.path.isdir(path): return path
 
     raise RuntimeError('Could not find the matplotlib data files')
@@ -442,7 +447,8 @@
         defaultParams['datapath'][0] = _get_data_path()
     return defaultParams['datapath'][0]
 
-get_data_path = verbose.wrap('matplotlib data path %s', _get_data_path_cached, 
always=False)
+get_data_path = verbose.wrap('matplotlib data path %s', _get_data_path_cached,
+                             always=False)
 
 def get_py2exe_datafiles():
     datapath = get_data_path()
@@ -454,8 +460,8 @@
         if 'Matplotlib.nib' in files:
             files.remove('Matplotlib.nib')
         files = [os.path.join(root, filename) for filename in files]
-        root = root.replace(tail, 'matplotlibdata')
-        root = root[root.index('matplotlibdata'):]
+        root = root.replace(tail, 'mpl-data')
+        root = root[root.index('mpl-data'):]
         d[root] = files
     return d.items()
 

Modified: branches/transforms/lib/matplotlib/axes.py
===================================================================
--- branches/transforms/lib/matplotlib/axes.py  2007-12-07 19:09:52 UTC (rev 
4668)
+++ branches/transforms/lib/matplotlib/axes.py  2007-12-07 19:18:02 UTC (rev 
4669)
@@ -5511,25 +5511,23 @@
 
 class SubplotBase:
     """
-    Emulate matlab's(TM) subplot command, creating axes with
-
-      Subplot(numRows, numCols, plotNum)
-
-    where plotNum=1 is the first plot number and increasing plotNums
-    fill rows first.  max(plotNum)==numRows*numCols
-
-    You can leave out the commas if numRows<=numCols<=plotNum<10, as
-    in
-
-      Subplot(211)    # 2 rows, 1 column, first (upper) plot
+    Base class for subplots, which are Axes instances with additional
+    methods to facilitate generating and manipulating a set of Axes
+    within a figure.
     """
 
     def __init__(self, fig, *args, **kwargs):
         """
         fig is a figure instance
 
-        args is a varargs to specify the subplot
+        args is numRows, numCols, plotNum
+            where the array of subplots in the figure has dimensions
+            numRows, numCols, and where plotNum is the number of the
+            subplot being created.  plotNum starts at 1 in the upper
+            right corner and increases to the right.
 
+            If numRows<=numCols<=plotNum<10, args can be the decimal
+            integer numRows*100 + numCols*10 + plotNum.
         """
 
         self.figure = fig
@@ -5650,7 +5648,6 @@
 def subplot_class_factory(axes_class=None):
     # This makes a new class that inherits from SubclassBase and the
     # given axes_class (which is assumed to be a subclass of Axes).
-
     # This is perhaps a little bit roundabout to make a new class on
     # the fly like this, but it means that a new Subplot class does
     # not have to be created for every type of Axes.

Modified: branches/transforms/lib/matplotlib/config/cutils.py
===================================================================
--- branches/transforms/lib/matplotlib/config/cutils.py 2007-12-07 19:09:52 UTC 
(rev 4668)
+++ branches/transforms/lib/matplotlib/config/cutils.py 2007-12-07 19:18:02 UTC 
(rev 4669)
@@ -77,7 +77,7 @@
     if os.path.exists(p):
         if not is_writable_dir(p):
             raise RuntimeError("""\
-'%s' is not a writable dir; you must set %s/.matplotlib to be a writable dir. 
+'%s' is not a writable dir; you must set %s/.matplotlib to be a writable dir.
 You can also set environment variable MPLCONFIGDIR to any writable directory
 where you want matplotlib data stored """%h)
     else:
@@ -110,11 +110,16 @@
 
     # py2exe zips pure python, so still need special check
     if getattr(sys,'frozen',None):
-        path = os.path.join(os.path.split(sys.path[0])[0], 'matplotlibdata')
+        path = os.path.join(os.path.split(sys.path[0])[0], 'mpl-data')
         if os.path.isdir(path): return path
         else:
+            # Try again assuming we need to step up one more directory
+            path = 
os.path.join(os.path.split(os.path.split(sys.path[0])[0])[0],
+                                'mpl-data')
+        if os.path.isdir(path): return path
+        else:
             # Try again assuming sys.path[0] is a dir not a exe
-            path = os.path.join(sys.path[0], 'matplotlibdata')
+            path = os.path.join(sys.path[0], 'mpl-data')
             if os.path.isdir(path): return path
 
     raise RuntimeError('Could not find the matplotlib data files')
@@ -136,8 +141,8 @@
         if 'Matplotlib.nib' in files:
             files.remove('Matplotlib.nib')
         files = [os.path.join(root, filename) for filename in files]
-        root = root.replace(tail, 'matplotlibdata')
-        root = root[root.index('matplotlibdata'):]
+        root = root.replace(tail, 'mpl-data')
+        root = root[root.index('mpl-data'):]
         d[root] = files
     return d.items()
 

Modified: branches/transforms/lib/matplotlib/figure.py
===================================================================
--- branches/transforms/lib/matplotlib/figure.py        2007-12-07 19:09:52 UTC 
(rev 4668)
+++ branches/transforms/lib/matplotlib/figure.py        2007-12-07 19:18:02 UTC 
(rev 4669)
@@ -526,6 +526,7 @@
         Add a subplot.  Examples
 
             add_subplot(111)
+            add_subplot(1,1,1)            # equivalent but more general
             add_subplot(212, axisbg='r')  # add subplot with red background
             add_subplot(111, polar=True)  # add a polar subplot
             add_subplot(sub)              # add Subplot instance sub

Modified: branches/transforms/lib/matplotlib/font_manager.py
===================================================================
--- branches/transforms/lib/matplotlib/font_manager.py  2007-12-07 19:09:52 UTC 
(rev 4668)
+++ branches/transforms/lib/matplotlib/font_manager.py  2007-12-07 19:18:02 UTC 
(rev 4669)
@@ -105,14 +105,16 @@
     try:
         import _winreg
     except ImportError:
-        return os.path.join(os.environ['WINDIR'], 'Fonts')
+        pass # Fall through to default
     else:
         user = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, MSFolders)
         try:
             return _winreg.QueryValueEx(user, 'Fonts')[0]
+        except OSError:
+            pass # Fall through to default
         finally:
             _winreg.CloseKey(user)
-    return None
+    return os.path.join(os.environ['WINDIR'], 'Fonts')
 
 def win32InstalledFonts(directory=None, fontext='ttf'):
     """

Modified: branches/transforms/lib/matplotlib/image.py
===================================================================
--- branches/transforms/lib/matplotlib/image.py 2007-12-07 19:09:52 UTC (rev 
4668)
+++ branches/transforms/lib/matplotlib/image.py 2007-12-07 19:18:02 UTC (rev 
4669)
@@ -4,7 +4,7 @@
 
 """
 from __future__ import division
-import os
+import os, warnings
 
 import numpy as npy
 
@@ -180,6 +180,9 @@
 
     def draw(self, renderer, *args, **kwargs):
         if not self.get_visible(): return
+        if (self.axes.get_xscale() != 'linear' or
+            self.axes.get_yscale() != 'linear'):
+            warnings.warn("Images are not supported on non-linear axes.")
         im = self.make_image(renderer.get_image_magnification())
         l, b, widthDisplay, heightDisplay = self.axes.bbox.bounds
         renderer.draw_image(l, b, im, self.axes.bbox.frozen(),

Modified: branches/transforms/lib/matplotlib/widgets.py
===================================================================
--- branches/transforms/lib/matplotlib/widgets.py       2007-12-07 19:09:52 UTC 
(rev 4668)
+++ branches/transforms/lib/matplotlib/widgets.py       2007-12-07 19:18:02 UTC 
(rev 4669)
@@ -664,8 +664,8 @@
         self.vertOn = True
         self.useblit = useblit
 
-        self.lineh = ax.axhline(0, visible=False, **lineprops)
-        self.linev = ax.axvline(0, visible=False, **lineprops)
+        self.lineh = ax.axhline(ax.get_ybound()[0], visible=False, **lineprops)
+        self.linev = ax.axvline(ax.get_xbound()[0], visible=False, **lineprops)
 
         self.background = None
         self.needclear = False
@@ -1072,11 +1072,11 @@
         # If RectangleSelector is not active :
         if not self.active:
             return True
-        
+
         # If canvas was locked
         if not self.canvas.widgetlock.available(self):
             return True
-        
+
         # If no button was pressed yet ignore the event if it was out
         # of the axes
         if self.eventpress == None:
@@ -1176,7 +1176,7 @@
 
     def get_active(self):
         """ to get status of active mode (boolean variable)"""
-        return self.active 
+        return self.active
 
 class Lasso(Widget):
     def __init__(self, ax, xy, callback=None, useblit=True):


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

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to