Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > a44f8c7e78ee9c5838c1fb080c9e7630 > files > 4754

python-matplotlib-doc-1.1.1-1mdv2010.1.noarch.rpm



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Tight Layout guide &mdash; Matplotlib v1.1.1 documentation</title>
    <link rel="stylesheet" href="../_static/mpl.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1.1.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="search" type="application/opensearchdescription+xml"
          title="Search within Matplotlib v1.1.1 documentation"
          href="../_static/opensearch.xml"/>
    <link rel="top" title="Matplotlib v1.1.1 documentation" href="../index.html" />
    <link rel="up" title="User’s Guide" href="index.html" />
    <link rel="next" title="Legend guide" href="legend_guide.html" />
    <link rel="prev" title="Customizing Location of Subplot Using GridSpec" href="gridspec.html" /> 
  </head>
  <body>
<!-- Piwik -->
<script type="text/javascript">
if ("matplotlib.sourceforge.net" == document.location.hostname ||
    "matplotlib.sf.net" == document.location.hostname) {
  var pkBaseURL = (("https:" == document.location.protocol) ? "https://apps.sourceforge.net/piwik/matplotlib/" : "http://apps.sourceforge.net/piwik/matplotlib/");
  document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
<script type="text/javascript">
if ("matplotlib.sourceforge.net" == document.location.hostname ||
    "matplotlib.sf.net" == document.location.hostname) {
  piwik_action_name = '';
  piwik_idsite = 1;
  piwik_url = pkBaseURL + "piwik.php";
  piwik_log(piwik_action_name, piwik_idsite, piwik_url);
  document.write(unescape('%3Cobject%3E%3Cnoscript%3E%3Cp%3E%3Cimg src="http://apps.sourceforge.net/piwik/matplotlib/piwik.php?idsite=1" alt="piwik"/%3E%3C/p%3E%3C/noscript%3E%3C/object%3E'));
}
</script>
<!-- End Piwik Tag -->
<link rel="shortcut icon" href="_static/favicon.ico">

<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px">
<a href="../index.html"><img src="../_static/logo2.png" border="0" alt="matplotlib"/></a>
</div>

    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="legend_guide.html" title="Legend guide"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="gridspec.html" title="Customizing Location of Subplot Using GridSpec"
             accesskey="P">previous</a> |</li>
        <li><a href="../index.html">home</a>|&nbsp;</li>
        <li><a href="../search.html">search</a>|&nbsp;</li>
        <li><a href="../examples/index.html">examples</a>|&nbsp;</li>
        <li><a href="../gallery.html">gallery</a>|&nbsp;</li>
        <li><a href="../contents.html">docs</a> &raquo;</li>

          <li><a href="index.html" accesskey="U">User&#8217;s Guide</a> &raquo;</li> 
      </ul>
    </div>

      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Tight Layout guide</a><ul>
<li><a class="reference internal" href="#simple-example">Simple Example</a><ul>
<li><a class="reference internal" href="#caveats">Caveats</a></li>
<li><a class="reference internal" href="#use-with-gridspec">Use with GridSpec</a></li>
<li><a class="reference internal" href="#use-with-axesgrid1">Use with AxesGrid1</a></li>
<li><a class="reference internal" href="#colorbar">Colorbar</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="gridspec.html"
                        title="previous chapter">Customizing Location of Subplot Using GridSpec</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="legend_guide.html"
                        title="next chapter">Legend guide</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../_sources/users/tight_layout_guide.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" size="18" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="tight-layout-guide">
<span id="plotting-guide-tight-layout"></span><h1>Tight Layout guide<a class="headerlink" href="#tight-layout-guide" title="Permalink to this headline">¶</a></h1>
<p><em>tight_layout</em> automatically adjusts subplot params so that the
subplot(s) fits in to the figure area. This is an experimental
feature and may not work for some cases. It only checks the extents
of ticklabels, axis labels, and titles.</p>
<div class="section" id="simple-example">
<h2>Simple Example<a class="headerlink" href="#simple-example" title="Permalink to this headline">¶</a></h2>
<p>In matplotlib location of axes (including subplots) are specified in
normalized figure coordinate. It can happen that your axis labels or
titles (or sometimes even ticklabels) go outside the figure area thus
clipped.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">rcParams</span><span class="p">[</span><span class="s">&#39;savefig.facecolor&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;0.8&quot;</span>

<span class="k">def</span> <span class="nf">example_plot</span><span class="p">(</span><span class="n">ax</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">12</span><span class="p">):</span>
     <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">])</span>
     <span class="n">ax</span><span class="o">.</span><span class="n">locator_params</span><span class="p">(</span><span class="n">nbins</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
     <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s">&#39;x-label&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">fontsize</span><span class="p">)</span>
     <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s">&#39;y-label&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">fontsize</span><span class="p">)</span>
     <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s">&#39;Title&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">fontsize</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">24</span><span class="p">)</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-1.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-1.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-1.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-1.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-1.png" src="../_images/tight_layout_guide-1.png" />
</div>
<p>To prevent this, the location of axes need to be adjusted. For
subplots, this can be done by adjusting the subplot params
(<a class="reference internal" href="../faq/howto_faq.html#howto-subplots-adjust"><em>Move the edge of an axes to make room for tick labels</em></a>). Matplotlib v1.1 introduces a new
command <a class="reference internal" href="../api/pyplot_api.html#matplotlib.pyplot.tight_layout" title="matplotlib.pyplot.tight_layout"><tt class="xref py py-func docutils literal"><span class="pre">tight_layout()</span></tt></a> that does this
automatically for you.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-2.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-2.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-2.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-2.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-2.png" src="../_images/tight_layout_guide-2.png" />
</div>
<p>When you have multiple subplots, often you see labels of different
axes overlaps each other.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span><span class="p">,</span> <span class="p">((</span><span class="n">ax1</span><span class="p">,</span> <span class="n">ax2</span><span class="p">),</span> <span class="p">(</span><span class="n">ax3</span><span class="p">,</span> <span class="n">ax4</span><span class="p">))</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">nrows</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">ncols</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax1</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax2</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax3</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax4</span><span class="p">)</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-3.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-3.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-3.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-3.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-3.png" src="../_images/tight_layout_guide-3.png" />
</div>
<p><em>tight_layout</em> will also adjust spacing betweens subplots to minimize
the overlaps.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-4.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-4.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-4.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-4.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-4.png" src="../_images/tight_layout_guide-4.png" />
</div>
<p><a class="reference internal" href="../api/pyplot_api.html#matplotlib.pyplot.tight_layout" title="matplotlib.pyplot.tight_layout"><tt class="xref py py-func docutils literal"><span class="pre">tight_layout()</span></tt></a> can take keyword arguments of
<em>pad</em>, <em>w_pad</em> and <em>h_pad</em>. These controls the extra pad around the
figure border and between subplots. The pads are specified in fraction
of fontsize.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">(</span><span class="n">pad</span><span class="o">=</span><span class="mf">0.4</span><span class="p">,</span> <span class="n">w_pad</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">h_pad</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-5.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-5.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-5.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-5.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-5.png" src="../_images/tight_layout_guide-5.png" />
</div>
<p><a class="reference internal" href="../api/pyplot_api.html#matplotlib.pyplot.tight_layout" title="matplotlib.pyplot.tight_layout"><tt class="xref py py-func docutils literal"><span class="pre">tight_layout()</span></tt></a> will work even if the sizes of
subplot are different as far as their grid specification is
compatible. In the example below, <em>ax1</em> and <em>ax2</em> are subplots of 2x2
grid, while <em>ax3</em> is of 1x2 grid.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>

<span class="n">ax1</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">221</span><span class="p">)</span>
<span class="n">ax2</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">223</span><span class="p">)</span>
<span class="n">ax3</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">122</span><span class="p">)</span>

<span class="n">example_plot</span><span class="p">(</span><span class="n">ax1</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax2</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax3</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-6.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-6.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-6.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-6.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-6.png" src="../_images/tight_layout_guide-6.png" />
</div>
<p>It works with subplots created with
<a class="reference internal" href="../api/pyplot_api.html#matplotlib.pyplot.subplot2grid" title="matplotlib.pyplot.subplot2grid"><tt class="xref py py-func docutils literal"><span class="pre">subplot2grid()</span></tt></a>. In general, subplots created
from the gridspec (<a class="reference internal" href="gridspec.html#gridspec-guide"><em>Customizing Location of Subplot Using GridSpec</em></a>) will work.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>

<span class="n">ax1</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot2grid</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
<span class="n">ax2</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot2grid</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">colspan</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">ax3</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot2grid</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">colspan</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">rowspan</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">ax4</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot2grid</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="n">rowspan</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>

<span class="n">example_plot</span><span class="p">(</span><span class="n">ax1</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax2</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax3</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax4</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-7.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-7.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-7.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-7.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-7.png" src="../_images/tight_layout_guide-7.png" />
</div>
<p>Although not thoroughly tested, it seems to work for subplots with
aspect != &#8220;auto&#8221; (e.g., axes with images).</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">))</span>

<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>

<span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">111</span><span class="p">)</span>
<span class="n">im</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s">&quot;none&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-8.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-8.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-8.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-8.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-8.png" src="../_images/tight_layout_guide-8.png" />
</div>
<div class="section" id="caveats">
<h3>Caveats<a class="headerlink" href="#caveats" title="Permalink to this headline">¶</a></h3>
<blockquote>
<div><ul class="simple">
<li><em>tight_layout</em> only considers ticklabels, axis labels, and titles. Thus, other atists may be clipped and also may overlap.</li>
<li>It assumes that the extra space needed for ticklabels, axis labels,
and titles is independent of original location of axes. This is
often True, but there are rare cases it is not.</li>
<li>pad=0 clips some of the texts by a few pixels. This may be a bug or
a limitation of the current algorithm and it is not clear why it
happens. Meanwhile, use of pad at least larger than 0.3 is
recommended.</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="use-with-gridspec">
<h3>Use with GridSpec<a class="headerlink" href="#use-with-gridspec" title="Permalink to this headline">¶</a></h3>
<p>GridSpec has its own tight_layout method
(the pyplot api <a class="reference internal" href="../api/pyplot_api.html#matplotlib.pyplot.tight_layout" title="matplotlib.pyplot.tight_layout"><tt class="xref py py-func docutils literal"><span class="pre">tight_layout()</span></tt></a> also works).</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>

<span class="kn">import</span> <span class="nn">matplotlib.gridspec</span> <span class="kn">as</span> <span class="nn">gridspec</span>

<span class="n">gs1</span> <span class="o">=</span> <span class="n">gridspec</span><span class="o">.</span><span class="n">GridSpec</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">ax1</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="n">gs1</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="n">ax2</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="n">gs1</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>

<span class="n">example_plot</span><span class="p">(</span><span class="n">ax1</span><span class="p">)</span>
<span class="n">example_plot</span><span class="p">(</span><span class="n">ax2</span><span class="p">)</span>

<span class="n">gs1</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">(</span><span class="n">fig</span><span class="p">)</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-9.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-9.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-9.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-9.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-9.png" src="../_images/tight_layout_guide-9.png" />
</div>
<p>You may provide an optional <em>rect</em> parameter, which specify the bbox
that the subplots will be fit in. The coordinate must be in normalized
figure coordinate and the default is (0, 0, 1, 1).</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">gs1</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="n">rect</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-10.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-10.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-10.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-10.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-10.png" src="../_images/tight_layout_guide-10.png" />
</div>
<p>For example, this can be used for a figure with multiple grid_spec&#8217;s.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">gs2</span> <span class="o">=</span> <span class="n">gridspec</span><span class="o">.</span><span class="n">GridSpec</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>

<span class="k">for</span> <span class="n">ss</span> <span class="ow">in</span> <span class="n">gs2</span><span class="p">:</span>
    <span class="n">ax</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="n">ss</span><span class="p">)</span>
    <span class="n">example_plot</span><span class="p">(</span><span class="n">ax</span><span class="p">)</span>
    <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
    <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>

<span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s">&quot;x-label&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">12</span><span class="p">)</span>

<span class="n">gs2</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="n">rect</span><span class="o">=</span><span class="p">[</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">h_pad</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-11.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-11.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-11.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-11.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-11.png" src="../_images/tight_layout_guide-11.png" />
</div>
<p>We may try to match the top and bottom of two grids</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">top</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">gs1</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">gs2</span><span class="o">.</span><span class="n">top</span><span class="p">)</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">gs1</span><span class="o">.</span><span class="n">bottom</span><span class="p">,</span> <span class="n">gs2</span><span class="o">.</span><span class="n">bottom</span><span class="p">)</span>

<span class="n">gs1</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="n">top</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="n">bottom</span><span class="p">)</span>
<span class="n">gs2</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="n">top</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="n">bottom</span><span class="p">)</span>
</pre></div>
</div>
<p>While this should be mostly good enough, but adjusting top and bottom
may requires adjustment in hspace also.  To update hspace &amp; vspace, we
call tight_layout again with updated rect argument. Note the rect
argument specifies area including the ticklabels etc.  Thus we will
increase the bottom (which is 0 in normal case) by the difference
between the <em>bottom</em> from above and bottom of each gridspec. Same
thing for top.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">top</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">gs1</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">gs2</span><span class="o">.</span><span class="n">top</span><span class="p">)</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">gs1</span><span class="o">.</span><span class="n">bottom</span><span class="p">,</span> <span class="n">gs2</span><span class="o">.</span><span class="n">bottom</span><span class="p">)</span>

<span class="n">gs1</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="n">rect</span><span class="o">=</span><span class="p">[</span><span class="bp">None</span><span class="p">,</span> <span class="mi">0</span> <span class="o">+</span> <span class="p">(</span><span class="n">bottom</span><span class="o">-</span><span class="n">gs1</span><span class="o">.</span><span class="n">bottom</span><span class="p">),</span>
                            <span class="mf">0.5</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="n">gs1</span><span class="o">.</span><span class="n">top</span><span class="o">-</span><span class="n">top</span><span class="p">)])</span>
<span class="n">gs2</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="n">rect</span><span class="o">=</span><span class="p">[</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">0</span> <span class="o">+</span> <span class="p">(</span><span class="n">bottom</span><span class="o">-</span><span class="n">gs2</span><span class="o">.</span><span class="n">bottom</span><span class="p">),</span>
                            <span class="bp">None</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="n">gs2</span><span class="o">.</span><span class="n">top</span><span class="o">-</span><span class="n">top</span><span class="p">)],</span>
                 <span class="n">h_pad</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-12.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-12.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-12.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-12.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-12.png" src="../_images/tight_layout_guide-12.png" />
</div>
</div>
<div class="section" id="use-with-axesgrid1">
<h3>Use with AxesGrid1<a class="headerlink" href="#use-with-axesgrid1" title="Permalink to this headline">¶</a></h3>
<p>While limited, axes_grid1 toolkit is also supported.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>

<span class="kn">from</span> <span class="nn">mpl_toolkits.axes_grid1</span> <span class="kn">import</span> <span class="n">Grid</span>
<span class="n">grid</span> <span class="o">=</span> <span class="n">Grid</span><span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="n">rect</span><span class="o">=</span><span class="mi">111</span><span class="p">,</span> <span class="n">nrows_ncols</span><span class="o">=</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
            <span class="n">axes_pad</span><span class="o">=</span><span class="mf">0.25</span><span class="p">,</span> <span class="n">label_mode</span><span class="o">=</span><span class="s">&#39;L&#39;</span><span class="p">,</span>
            <span class="p">)</span>

<span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="n">grid</span><span class="p">:</span>
    <span class="n">example_plot</span><span class="p">(</span><span class="n">ax</span><span class="p">)</span>
    <span class="n">ax</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">set_visible</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-13.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-13.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-13.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-13.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-13.png" src="../_images/tight_layout_guide-13.png" />
</div>
</div>
<div class="section" id="colorbar">
<h3>Colorbar<a class="headerlink" href="#colorbar" title="Permalink to this headline">¶</a></h3>
<p>If you create colorbar with <a class="reference internal" href="../api/pyplot_api.html#matplotlib.pyplot.colorbar" title="matplotlib.pyplot.colorbar"><tt class="xref py py-func docutils literal"><span class="pre">colorbar()</span></tt></a>
command, the created colorbar is an instance of Axes not Subplot, thus
tight_layout does not work. With Matplotlib v1.1, you may create a
colobar as a subplot using the gridspec.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
<span class="n">im</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s">&quot;none&quot;</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">im</span><span class="p">,</span> <span class="n">use_gridspec</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-14.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-14.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-14.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-14.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-14.png" src="../_images/tight_layout_guide-14.png" />
</div>
<p>Another option is to use AxesGrid1 toolkit to
explicitly create an axes for colorbar.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s">&#39;all&#39;</span><span class="p">)</span>
<span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
<span class="n">im</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s">&quot;none&quot;</span><span class="p">)</span>

<span class="kn">from</span> <span class="nn">mpl_toolkits.axes_grid1</span> <span class="kn">import</span> <span class="n">make_axes_locatable</span>
<span class="n">divider</span> <span class="o">=</span> <span class="n">make_axes_locatable</span><span class="p">(</span><span class="n">plt</span><span class="o">.</span><span class="n">gca</span><span class="p">())</span>
<span class="n">cax</span> <span class="o">=</span> <span class="n">divider</span><span class="o">.</span><span class="n">append_axes</span><span class="p">(</span><span class="s">&quot;right&quot;</span><span class="p">,</span> <span class="s">&quot;5%&quot;</span><span class="p">,</span> <span class="n">pad</span><span class="o">=</span><span class="s">&quot;3%&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">im</span><span class="p">,</span> <span class="n">cax</span><span class="o">=</span><span class="n">cax</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>(<a class="reference external" href="../users/tight_layout_guide-15.py">Source code</a>, <a class="reference external" href="../users/tight_layout_guide-15.png">png</a>, <a class="reference external" href="../users/tight_layout_guide-15.hires.png">hires.png</a>, <a class="reference external" href="../users/tight_layout_guide-15.pdf">pdf</a>)</p>
<div class="figure">
<img alt="../_images/tight_layout_guide-15.png" src="../_images/tight_layout_guide-15.png" />
</div>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="legend_guide.html" title="Legend guide"
             >next</a> |</li>
        <li class="right" >
          <a href="gridspec.html" title="Customizing Location of Subplot Using GridSpec"
             >previous</a> |</li>
        <li><a href="../index.html">home</a>|&nbsp;</li>
        <li><a href="../search.html">search</a>|&nbsp;</li>
        <li><a href="../examples/index.html">examples</a>|&nbsp;</li>
        <li><a href="../gallery.html">gallery</a>|&nbsp;</li>
        <li><a href="../contents.html">docs</a> &raquo;</li>

          <li><a href="index.html" >User&#8217;s Guide</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2008, John Hunter, Darren Dale, Michael Droettboom.
      Last updated on Oct 04, 2012.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
    </div>
  </body>
</html>