Revision: 5596
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5596&view=rev
Author:   jdh2358
Date:     2008-06-19 09:54:54 -0700 (Thu, 19 Jun 2008)

Log Message:
-----------
added auto subplots adj faq

Modified Paths:
--------------
    trunk/matplotlib/Makefile
    trunk/matplotlib/doc/faq/howto_faq.rst
    trunk/matplotlib/doc/glossary/index.rst
    trunk/matplotlib/doc/make.py
    trunk/matplotlib/doc/users/installing.rst

Added Paths:
-----------
    trunk/matplotlib/doc/pyplots/auto_subplots_adjust.py

Modified: trunk/matplotlib/Makefile
===================================================================
--- trunk/matplotlib/Makefile   2008-06-19 13:59:08 UTC (rev 5595)
+++ trunk/matplotlib/Makefile   2008-06-19 16:54:54 UTC (rev 5596)
@@ -39,7 +39,7 @@
        rm -rf build;\
        python make.py clean;\
        svn up;\
-       python make.py html latex sf;
+       python make.py html latex sf sfpdf;
 
 
 

Modified: trunk/matplotlib/doc/faq/howto_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/howto_faq.rst      2008-06-19 13:59:08 UTC (rev 
5595)
+++ trunk/matplotlib/doc/faq/howto_faq.rst      2008-06-19 16:54:54 UTC (rev 
5596)
@@ -54,6 +54,40 @@
 `axes_demo.py <http://matplotlib.sf.net/examples/axes_demo.py>`_ for
 an example of placing axes manually.
 
+.. _howto-auto-adjust:
+
+How do I automatically make room for my tick labels?
+====================================================
+
+In most use cases, it is enought to simpy change the subplots adjust
+parameters as described in :ref:`howto-subplots-adjust`.  But in some
+cases, you don't know ahead of time what your tick labels will be, or
+how large they will be (data and labels outside your control may be
+being fed into your graphing application), and you may need to
+automatically adjust your subplot parameters based on the size of the
+tick labels.  Any :class:`matplotlib.text.Text` instance can report
+its extent in window coordinates (a negative x coordinate is outside
+the window), but there is a rub.
+
+The :class:`matplotlib.backend_bases.RendererBase` instance, which is
+used to calculate the text size, is not known until the figure is
+drawn (:meth:`matplotlib.figure.Figure.draw`).  After the window is
+drawn and the text instance knows its renderer, you can call
+:meth:`matplotlib.text.Text.get_window_extent``.  One way to solve
+this chicken and egg problem is to wait until the figure is draw by
+connecting
+(:meth:`matplotlib.backend_bases.FigureCanvasBase.mpl_connect`) to the
+"on_draw" signal (:class:`~matplotlib.backend_bases.DrawEvent`) and
+get the window extent there, and then do something with it, eg move
+the left of the canvas over; see :ref:`event-handling-tutorial`.
+
+Here is a recursive, iterative solution that will gradually move the
+left of the subplot over until the label fits w/o going outside the
+figure border (requires matplotlib 0.98)
+
+.. plot:: auto_subplots_adjust.py
+   :include-source:
+
 .. _howto-ticks:
 
 How do I configure the tick linewidths?

Modified: trunk/matplotlib/doc/glossary/index.rst
===================================================================
--- trunk/matplotlib/doc/glossary/index.rst     2008-06-19 13:59:08 UTC (rev 
5595)
+++ trunk/matplotlib/doc/glossary/index.rst     2008-06-19 16:54:54 UTC (rev 
5596)
@@ -8,73 +8,138 @@
 .. glossary::
 
   AGG
-      The Anti-Grain Geometry rendering engine, capable of rendering
-      high-quality images.
+      The Anti-Grain Geometry (`Agg <http://antigrain.com>`_) rendering 
engine, capable of rendering
+      high-quality images
 
   Cairo
-      The Cairo graphics engine
+      The `Cairo graphics <http://cairographics.org>`_ engine
 
   EPS
-      Encapsulated Postscript
+      Encapsulated Postscript (`EPS 
<http://en.wikipedia.org/wiki/Encapsulated_PostScript>`_)
 
   FLTK
-      FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for
+      `FLTK <http://www.fltk.org/>`_ (pronounced "fulltick") is a 
cross-platform C++ GUI toolkit for
       UNIX/Linux (X11), Microsoft Windows, and MacOS X
 
+  freetype
+      `freetype <http://www.freetype.org/>`_ is a font rasterization
+      library used by matplotlib which supports TrueType, Type 1, and
+      OpenType fonts.
+
+
   GDK
       The Gimp Drawing Kit for GTK+
 
   GTK
-      The GTK graphical user interface library
+      The GIMP Toolkit (`GTK <http://www.gtk.org/>`_) graphical user interface 
library
 
   JPG
-      A compression method and file format for photographic images
+      The Joint Photographic Experts Group (`JPEG
+      <http://en.wikipedia.org/wiki/Jpeg>`_) compression method and
+      file format for photographic images
 
+  numpy
+      `numpy <http://numpy.scipy.org>`_ is the standard numerical
+      array library for python, the successor to Numeric and numarray.
+      numpy provides fast operations for homogeneous data sets and
+      common mathematical operations like correlations, standard
+      deviation, fourier transforms, and convolutions.
+
   PDF
-      Adobe's Portable Document Format
+      Adobe's Portable Document Format (`PDF 
<http://en.wikipedia.org/wiki/Portable_Document_Format>`_)
 
   PNG
-      PNG stands for Portable Network Graphics, a raster graphics format that
-      employs lossless data compression which is more suitable for line art
-      than the lossy jpg format. Unlike the gif format, png is not encumbered
-      by requirements for a patent license.
+      Portable Network Graphics (`PNG
+      <http://en.wikipedia.org/wiki/Portable_Network_Graphics>`_), a raster 
graphics format
+      that employs lossless data compression which is more suitable
+      for line art than the lossy jpg format. Unlike the gif format,
+      png is not encumbered by requirements for a patent license.
 
   PS
-      Postscript
+      Postscript (`PS <http://en.wikipedia.org/wiki/PostScript>`_) is a
+      vector graphics ASCII text language widely used in printers and
+      publishing.  Postscript was developerd by adobe systems and is
+      starting to show its age: for example is does not have an alpha
+      channel.  PDF was designed in part as a next-generation document
+      format to replace postscript
 
+  pyfltk
+      `pyfltk <http://pyfltk.sourceforge.net/>`_ provides python
+      wrappers for the :term:`FLTK` widgets library for use with
+      FLTKAgg
+
+  pygtk
+      `pygtk <http://www.pygtk.org/>`_ provides python wrappers for
+      the :term:`GTK` widgets library for use with the GTK or GTKAgg
+      backend.  Widely used on linux, and is often packages as
+      'python-gtk2'
+
+  pyqt
+      `pyqt <http://wiki.python.org/moin/PyQt>`_ provides python
+      wrappers for the :term:`Qt` widgets library and is requied by
+      the matplotlib QtAgg and Qt4Agg backends.  Widely used on linux
+      and windows; many linux distributions package this as
+      'python-qt3' or 'python-qt4'.
+
+  python
+      `python <http://python.org>`_ is an object oriented interpreted
+      language widely used for scripting, application development, web
+      application servers, scientific computing and more.
+
   Qt
-      Qt is a cross-platform application framework for desktop and embedded
-      development.
+      `Qt <http://trolltech.com/products/qt/>`__ is a cross-platform
+      application framework for desktop and embedded development.
 
   Qt4
-      Qt4 is the most recent version of Qt cross-platform application framework
-      for desktop and embedded development.
+      `Qt4 <http://trolltech.com/products/qt/>`__ is the most recent
+      version of Qt cross-platform application framework for desktop
+      and embedded development.
 
   raster graphics
-      Raster graphics, or bitmaps, represent an image as an array of pixels
-      which is resolution dependent. Raster graphics are generally most
-      practical for photo-realistic images, but do not scale easily without
-      loss of quality.  See `raster graphics 
<http://en.wikipedia.org/wiki/Raster_graphics>`_
+      `Raster graphics
+      <http://en.wikipedia.org/wiki/Raster_graphics>`_, or bitmaps,
+      represent an image as an array of pixels which is resolution
+      dependent. Raster graphics are generally most practical for
+      photo-realistic images, but do not scale easily without loss of
+      quality.
 
   SVG
-      The Scalable Vector Graphics format.
+      The Scalable Vector Graphics format (`SVG
+      <http://en.wikipedia.org/wiki/Svg>`_).  An XML based vector
+      graphics format supported by many web browsers.
 
   TIFF
-      Tagged Image File Format
+      Tagged Image File Format (`TIFF
+      <http://en.wikipedia.org/wiki/Tagged_Image_File_Format>`_) is a
+      file format for storing images, including photographs and line
+      art.
 
   Tk
-      Tk is a graphical user interface for Tcl and many other dynamic
-      languages. It can produce rich, native applications that run unchanged
-      across Windows, Mac OS X, Linux and more.
+      `Tk <http://www.tcl.tk/>`_ is a graphical user interface for Tcl
+      and many other dynamic languages. It can produce rich, native
+      applications that run unchanged across Windows, Mac OS X, Linux
+      and more.
 
+  vector graphics
+      `vector graphics
+      <http://en.wikipedia.org/wiki/Vector_graphics>`_ use geometrical
+      primitives based upon mathematical equations to represent images
+      in computer graphics. Primitives can include points, lines,
+      curves, and shapes or polygons. Vector graphics are scalable,
+      which means that they can be resized without suffering from
+      issues related to inherent resolution like are seen in raster
+      graphics. Vector graphics are generally most practical for
+      typesetting and graphic design applications.
+
+  wxpython
+      `wxpython <http://www.wxpython.org/>`_ provides python wrappers
+      for the :term:`wxWidgets` library for use with the WX and WXAgg
+      backends.  Widely used on linux, OS-X and windows, it is often
+      packaged by linux distributions as 'python-wxgtk'
+
   wxWidgets
-      A cross-platform GUI and tools library for GTK, MS Windows, and MacOS.
+      `WX <http://www.wxwidgets.org/>`_ is cross-platform GUI and
+      tools library for GTK, MS Windows, and MacOS.  It uses native
+      widgets for each operating system, so applications will have the
+      look-and-feel that users on that operating system expect.
 
-  vector graphics
-      The use of geometrical primitives based upon mathematical equations to
-      represent images in computer graphics. Primitives can include points,
-      lines, curves, and shapes or polygons. Vector graphics are scalable,
-      which means that they can be resized without suffering from issues
-      related to inherent resolution like are seen in raster graphics. Vector
-      graphics are generally most practical for typesetting and graphic design
-      applications.  See `vector graphics 
<http://en.wikipedia.org/wiki/Vector_graphics>`_

Modified: trunk/matplotlib/doc/make.py
===================================================================
--- trunk/matplotlib/doc/make.py        2008-06-19 13:59:08 UTC (rev 5595)
+++ trunk/matplotlib/doc/make.py        2008-06-19 16:54:54 UTC (rev 5596)
@@ -17,8 +17,12 @@
 def sf():
     'push a copy to the sf site'
     os.system('cd build; rsync -avz html [EMAIL 
PROTECTED]:/home/groups/m/ma/matplotlib/htdocs/doc/ -essh')
-    os.system('cd build/latex; scp Matplotlib.pdf [EMAIL 
PROTECTED]:/home/groups/m/ma/matplotlib/htdocs/doc/')
 
+def sfpdf():
+    'push a copy to the sf site'
+
+    #os.system('cd build/latex; scp Matplotlib.pdf [EMAIL 
PROTECTED]:/home/groups/m/ma/matplotlib/htdocs/doc/')
+
 def figs():
     os.system('cd users/figures/ && python make.py')
 
@@ -73,6 +77,7 @@
          'latex':latex,
          'clean':clean,
          'sf':sf,
+         'sfpdf':sfpdf,
          'all':all,
          }
 

Added: trunk/matplotlib/doc/pyplots/auto_subplots_adjust.py
===================================================================
--- trunk/matplotlib/doc/pyplots/auto_subplots_adjust.py                        
        (rev 0)
+++ trunk/matplotlib/doc/pyplots/auto_subplots_adjust.py        2008-06-19 
16:54:54 UTC (rev 5596)
@@ -0,0 +1,19 @@
+import matplotlib.pyplot as plt
+
+fig = plt.figure()
+ax = fig.add_subplot(111)
+ax.plot(range(10))
+ax.set_yticks((2,5,7))
+labels = ax.set_yticklabels(('really, really, really', 'long', 'labels'))
+
+def on_draw(event):
+   for label in labels:
+       bbox = label.get_window_extent()
+       if bbox.xmin<0:
+           fig.subplots_adjust(left=1.1*fig.subplotpars.left)
+           fig.canvas.draw()
+           break
+
+fig.canvas.mpl_connect('draw_event', on_draw)
+
+plt.show()

Modified: trunk/matplotlib/doc/users/installing.rst
===================================================================
--- trunk/matplotlib/doc/users/installing.rst   2008-06-19 13:59:08 UTC (rev 
5595)
+++ trunk/matplotlib/doc/users/installing.rst   2008-06-19 16:54:54 UTC (rev 
5596)
@@ -14,18 +14,18 @@
 and numpy) since the others are built into the matplotlib windows
 installers available for download at the sourceforge site.
 
-python 2.4 (or later but not python3)
-    matplotlib requires python 2.4 or later
+:term:`python` 2.4 (or later but not python3)
+    matplotlib requires python 2.4 or later (`download 
<http://www.python.org/download/>`__)
 
-numpy 1.1 (or later)
-    array support for python
+:term:`numpy` 1.1 (or later)
+    array support for python (`download 
<http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103>`__)
 
 libpng 1.1 (or later)
-    library for loading and saving PNG files. libpng requires zlib. If
+    library for loading and saving :term:`PNG` files (`download 
<http://www.libpng.org/pub/png/libpng.html>`__). libpng requires zlib. If
     you are a windows user, you can ignore this since we build support
-    into the matplotlib single click installer.
+    into the matplotlib single click installer
 
-freetype 1.4 (or later)
+:term:`freetype` 1.4 (or later)
     library for reading true type font files. If you are a windows
     user, you can ignore this since we build support into the
     matplotlib single click installer.
@@ -37,25 +37,25 @@
 :ref:`what-is-a-backend` for more details on the optional matplotlib
 backends and the capabilities they provide
 
-tk 8.3 or later
+:term:`tk` 8.3 or later
     The TCL/Tk widgets library used by the TkAgg backend
 
-pyqt 3.1 or later
+:term:`pyqt` 3.1 or later
     The Qt3 widgets library python wrappers for the QtAgg backend
 
-pyqt 4.0 or later
+:term:`pyqt` 4.0 or later
     The Qt4 widgets library python wrappersfor the Qt4Agg backend
 
-pygtk 2.2 or later
+:term:`pygtk` 2.2 or later
     The python wrappers for the GTK widgets library for use with the GTK or 
GTKAgg backend
 
-wxpython 2.6 or later
+:term:`wxpython` 2.6 or later
     The python wrappers for the wx widgets library for use with the WXAgg 
backend
 
-wxpython 2.8 or later
+:term:`wxpython` 2.8 or later
     The python wrappers for the wx widgets library for use with the WX backend
 
-pyfltk 1.0 or later
+:term:`pyfltk` 1.0 or later
     The python wrappers of the FLTK widgets library for use with FLTKAgg
 
 **Required libraries that ship with matplotlib**
@@ -65,7 +65,7 @@
 developers and packagers who may want to disable the matplotlib
 version and ship a packaged version.
 
-agg2.4
+:term:`agg` 2.4
     The antigrain C++ rendering engine
 
 pytz 2007g or later


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

-------------------------------------------------------------------------
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