Permalink
Browse files

Add docstring to rc_context and accept a dictionary too.

  • Loading branch information...
1 parent 3954377 commit 44f2d83f3375e695bb89435cadcdd0b2c9f9582c @memmett committed May 26, 2012
Showing with 28 additions and 1 deletion.
  1. +28 −1 lib/matplotlib/__init__.py
View
@@ -906,12 +906,39 @@ def rc_file(fname):
class rc_context(object):
- def __init__(self, fname=None):
+ """
+ Return a context manager for managing rc settings.
+
+ This allows one to do::
+
+ >>> with mpl.rc_context(fname='screen.rc'):
+ >>> plt.plot(x, a)
+ >>> with mpl.rc_context(fname='print.rc'):
+ >>> plt.plot(x, b)
+ >>> plt.plot(x, c)
+
+ The 'a' vs 'x' and 'c' vs 'x' plots would have settings from
+ 'screen.rc', while the 'b' vs 'x' plot would have settings from
+ 'print.rc'.
+
+ A dictionary can also be passed to the context manager::
+
+ >>> with mpl.rc_context(rc={'text.usetex': True}, fname='screen.rc'):
+ >>> plt.plot(x, a)
+
+ The 'rc' dictionary takes precedence over the settings loaded from
+ 'fname'. Passing a dictionary only is also valid.
+ """
+
+ def __init__(self, rc=None, fname=None):
+ self.rcdict = rc
self.fname = fname
def __enter__(self):
self._rcparams = rcParams.copy()
if self.fname:
rc_file(self.fname)
+ if self.rcdict:
+ rcParams.update(self.rcdict)
def __exit__(self, type, value, tb):
rcParams.update(self._rcparams)

0 comments on commit 44f2d83

Please sign in to comment.