|
From: <lee...@us...> - 2011-01-14 05:42:11
|
Revision: 8916
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8916&view=rev
Author: leejjoon
Date: 2011-01-14 05:42:04 +0000 (Fri, 14 Jan 2011)
Log Message:
-----------
add demo_gridspec06.py and update gridspec doc (original patch from Paul Ivanov)
Modified Paths:
--------------
trunk/matplotlib/doc/users/gridspec.rst
Added Paths:
-----------
trunk/matplotlib/doc/users/plotting/examples/demo_gridspec06.py
Modified: trunk/matplotlib/doc/users/gridspec.rst
===================================================================
--- trunk/matplotlib/doc/users/gridspec.rst 2011-01-13 19:07:12 UTC (rev 8915)
+++ trunk/matplotlib/doc/users/gridspec.rst 2011-01-14 05:42:04 UTC (rev 8916)
@@ -129,6 +129,16 @@
.. plot:: users/plotting/examples/demo_gridspec04.py
+A Complex Nested GridSpec using SubplotSpec
+===========================================
+
+Here's a more sophisticated example of nested gridspec where we put
+a box around each cell of the outer 4x4 grid, by hiding appropriate
+spines in each of the inner 3x3 grids. ::
+
+.. plot:: users/plotting/examples/demo_gridspec06.py
+
+
GridSpec with Varying Cell Sizes
================================
Added: trunk/matplotlib/doc/users/plotting/examples/demo_gridspec06.py
===================================================================
--- trunk/matplotlib/doc/users/plotting/examples/demo_gridspec06.py (rev 0)
+++ trunk/matplotlib/doc/users/plotting/examples/demo_gridspec06.py 2011-01-14 05:42:04 UTC (rev 8916)
@@ -0,0 +1,53 @@
+import matplotlib.pyplot as plt
+import matplotlib.gridspec as gridspec
+import numpy as np
+
+try:
+ from itertools import product
+except ImportError:
+ # product is new in v 2.6
+ def product(*args, **kwds):
+ pools = map(tuple, args) * kwds.get('repeat', 1)
+ result = [[]]
+ for pool in pools:
+ result = [x+[y] for x in result for y in pool]
+ for prod in result:
+ yield tuple(prod)
+
+
+def squiggle_xy(a, b, c, d, i=np.arange(0.0, 2*np.pi, 0.05)):
+ return np.sin(i*a)*np.cos(i*b), np.sin(i*c)*np.cos(i*d)
+
+f = plt.figure(figsize=(8, 8))
+
+# gridspec inside gridspec
+outer_grid = gridspec.GridSpec(4, 4, wspace=0.0, hspace=0.0)
+
+for i in xrange(16):
+ inner_grid = gridspec.GridSpecFromSubplotSpec(3, 3,
+ subplot_spec=outer_grid[i], wspace=0.0, hspace=0.0)
+ a, b = int(i/4)+1,i%4+1
+ for j, (c, d) in enumerate(product(range(1, 4), repeat=2)):
+ ax = plt.Subplot(f, inner_grid[j])
+ ax.plot(*squiggle_xy(a, b, c, d))
+ ax.set_xticks([])
+ ax.set_yticks([])
+ f.add_subplot(ax)
+
+all_axes = f.get_axes()
+
+#show only the outside spines
+for ax in all_axes:
+ for sp in ax.spines.values():
+ sp.set_visible(False)
+ if ax.is_first_row():
+ ax.spines['top'].set_visible(True)
+ if ax.is_last_row():
+ ax.spines['bottom'].set_visible(True)
+ if ax.is_first_col():
+ ax.spines['left'].set_visible(True)
+ if ax.is_last_col():
+ ax.spines['right'].set_visible(True)
+
+plt.show()
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|