On Tue, Jan 4, 2011 at 4:40 PM, Sandro Tosi <mo...@debian.org> wrote:

> Hi all,
>
> On Thu, Dec 9, 2010 at 23:04, Ben Gamari <bgam...@gmail.com> wrote:
> > On Thu, 09 Dec 2010 16:44:37 -0500, Ben Gamari <bgam...@gmail.com>
> wrote:
> >> rcdefaults()'s implementation appears to implement the latter, updating
> >> rcParams from rcParamsDefault in rcsetup.py, which appears to describe
> >> the factory default values. Perhaps we should
> >> rcParamsDefault.update(rcParams) after loading matplotlibrc?
> >>
> > As expected, doing the update of rcParamsDefault proposed above (patch
> > below) allows the examples.download setting to persist throughout the
> > documentation build. It seems like either the documentation build
> > process or rcParamsDefault has been badly broken for a very long
> > time. Is rcParamsDefault really supposed to be the factory defaults or
> > is this just a bug? If the former, we will need to introduce a variant
> > of matplotlib.rcdefaults() to reset the configuration to that specified
> > in matplotlibrc.
>


I agree the current behavior needs to be improved.  I'm testing a change now
which utilizes two functions, now properly documented, and removing the hack
in the plot_directive since the file defaults will be preserved.  This keeps
the current behavior, since rcdefaults is unchanged, but fixes the doc
string, and introduces a new function with the desired behavior.


Index: doc/matplotlibrc
===================================================================
--- doc/matplotlibrc    (revision 8886)
+++ doc/matplotlibrc    (working copy)
@@ -232,7 +232,7 @@

 ### FIGURE
 # See http://matplotlib.sourceforge.net/matplotlib.figure.html#Figure
-figure.figsize   : 6, 4    # figure size in inches
+figure.figsize   : 5.5, 4.5    # figure size in inches
 #figure.dpi       : 80      # figure dots per inch
 #figure.facecolor : 0.75    # figure facecolor; 0.75 is scalar gray
 #figure.edgecolor : white   # figure edgecolor
Index: lib/matplotlib/__init__.py
===================================================================
--- lib/matplotlib/__init__.py  (revision 8886)
+++ lib/matplotlib/__init__.py  (working copy)
@@ -762,6 +762,7 @@

 # this is the instance used by the matplotlib classes
 rcParams = rc_params()
+rcParamsOrig = rcParams.copy()

 rcParamsDefault = RcParams([ (key, default) for key, (default, converter)
in \
                     defaultParams.iteritems() ])
@@ -843,11 +844,19 @@

 def rcdefaults():
     """
-    Restore the default rc params - the ones that were created at
-    matplotlib load time.
+    Restore the default rc params - these are not the params loaded by
+    the rc file, but mpl's internal params.  See rc_file_defaults for
+    reloading the default params from the rc file
     """
     rcParams.update(rcParamsDefault)

+def rc_file_defaults():
+    """
+    Restore the default rc params from the original matplotlib rc that
+    was loaded
+    """
+    rcParams.update(rcParamsOrig)
+
 _use_error_msg = """ This call to matplotlib.use() has no effect
 because the the backend has already been chosen;
 matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to