Revision: 6250
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6250&view=rev
Author: jdh2358
Date: 2008-10-17 18:51:10 +0000 (Fri, 17 Oct 2008)
Log Message:
-----------
reorg how to faq
Modified Paths:
--------------
trunk/matplotlib/doc/faq/howto_faq.rst
trunk/matplotlib/doc/make.py
Modified: trunk/matplotlib/doc/faq/howto_faq.rst
===================================================================
--- trunk/matplotlib/doc/faq/howto_faq.rst 2008-10-17 18:20:09 UTC (rev
6249)
+++ trunk/matplotlib/doc/faq/howto_faq.rst 2008-10-17 18:51:10 UTC (rev
6250)
@@ -7,10 +7,15 @@
.. contents::
+.. _howto-plotting:
+
+Plotting: howto
+=================
+
.. _howto-findobj:
Find all objects in figure of a certain type
-=============================================================
+-------------------------------------------------------------
Every matplotlib artist (see :ref:`artist-tutorial`) has a method
called :meth:`~matplotlib.artist.Artist.findobj` that can be used to
@@ -36,7 +41,7 @@
.. _howto-transparent:
Save transparent figures
-==================================
+----------------------------------
The :meth:`~matplotlib.pyplot.savefig` command has a keyword argument
*transparent* which, if True, will make the figure and axes
@@ -65,7 +70,7 @@
.. _howto-subplots-adjust:
Move the edge of an axes to make room for tick labels
-============================================================================
+----------------------------------------------------------------------------
For subplots, you can control the default spacing on the left, right,
bottom, and top as well as the horizontal and vertical spacing between
@@ -115,7 +120,7 @@
.. _howto-auto-adjust:
Automatically make room for tick labels
-====================================================
+----------------------------------------------------
In most use cases, it is enough to simpy change the subplots adjust
parameters as described in :ref:`howto-subplots-adjust`. But in some
@@ -149,7 +154,7 @@
.. _howto-ticks:
Configure the tick linewidths
-=======================================
+---------------------------------------
In matplotlib, the ticks are *markers*. All
:class:`~matplotlib.lines.Line2D` objects support a line (solid,
@@ -175,7 +180,7 @@
.. _howto-align-label:
Align my ylabels across multiple subplots
-===================================================
+---------------------------------------------------
If you have multiple subplots over one another, and the y data have
different scales, you can often get ylabels that do not align
@@ -189,74 +194,10 @@
.. plot:: align_ylabels.py
:include-source:
-.. _howto-webapp:
-
-Matplotlib in a web application server
-====================================================
-
-Many users report initial problems trying to use maptlotlib in web
-application servers, because by default matplotlib ships configured to
-work with a graphical user interface which may require an X11
-connection. Since many barebones application servers do not have X11
-enabled, you may get errors if you don't configure matplotlib for use
-in these environments. Most importantly, you need to decide what
-kinds of images you want to generate (PNG, PDF, SVG) and configure the
-appropriate default backend. For 99% of users, this will be the Agg
-backend, which uses the C++ `antigrain <http://antigrain.com>`_
-rendering engine to make nice PNGs. The Agg backend is also
-configured to recognize requests to generate other output formats
-(PDF, PS, EPS, SVG). The easiest way to configure matplotlib to use
-Agg is to call::
-
- # do this before importing pylab or pyplot
- import matplotlib
- matplotlib.use('Agg')
- import matplotlib.pyplot as plt
-
-For more on configuring your backend, see
-:ref:`what-is-a-backend`.
-
-Alternatively, you can avoid pylab/pyplot altogeher, which will give
-you a little more control, by calling the API directly as shown in
-`agg_oo.py <http://matplotlib.sf.net/examples/api/agg_oo.py>`_ .
-
-You can either generate hardcopy on the filesystem by calling savefig::
-
- # do this before importing pylab or pyplot
- import matplotlib
- matplotlib.use('Agg')
- import matplotlib.pyplot as plt
- fig = plt.figure()
- ax = fig.add_subplot(111)
- ax.plot([1,2,3])
- fig.savefig('test.png')
-
-or by saving to a file handle::
-
- import sys
- fig.savefig(sys.stdout)
-
-
-matplotlib with apache
-------------------------------------
-
-TODO
-
-matplotlib with django
-------------------------------------
-
-TODO
-
-matplotlib with zope
-----------------------------------
-
-TODO
-
-
.. _date-index-plots:
Skip dates where there is no data
-===========================================
+-------------------------------------
When plotting time series, eg financial time series, one often wants
to leave out days on which there is no data, eg weekends. By passing
@@ -293,7 +234,7 @@
.. _point-in-poly:
Test whether a point is inside a polygon
-==================================================
+-------------------------------------------
The :mod:`matplotlib.nxutils` provides two high performance methods:
for a single point use :func:`~matplotlib.nxutils.pnpoly` and for an
@@ -337,123 +278,12 @@
For a complete example, see :ref:`event_handling-lasso_demo`.
-
-.. _how-to-submit-patch:
-
-Submit a patch
-========================
-
-First obtain a copy of matplotlib svn (see :ref:`install-svn`) and
-make your changes to the matplotlib source code or documentation and
-apply a `svn diff`. If it is feasible, do your diff from the top
-level directory, the one that contains :file:`setup.py`. Eg,::
-
- > cd /path/to/matplotlib/source
- > svn diff > mypatch.diff
-
-and then post your patch to the `matplotlib-devel
-<http://sourceforge.net/mail/?group_id=80706>`_ mailing list. If you
-do not get a response within 24 hours, post your patch to the
-sourceforge patch `tracker
-<http://sourceforge.net/tracker2/?atid=560722&group_id=80706&func=browse>`_,
-and follow up on the mailing list with a link to the sourceforge patch
-submissions. If you still do not hear anything within a week (this
-shouldn't happen!), send us a kind and gentle reminder on the mailing
-list.
-
-If you have made lots of local changes and do not want to a diff
-against the entire tree, but rather against a single directory or
-file, that is fine, but we do prefer svn diffs against HEAD.
-
-You should check out the guide to developing matplotlib to make sure
-your patch abides by our coding conventions
-:ref:`developers-guide-index`.
-
-
-.. _how-to-contribute-docs:
-
-Contribute to matplotlib documentation
-=========================================
-
-matplotlib is a big library, which is used in many ways, and the
-documentation we have only scratches the surface of everything it can
-do. So far, the place most people have learned all these features are
-through studying the examples (:ref:`how-to-search-examples`), which is a
-recommended and great way to learn, but it would be nice to have more
-official narrative documentation guiding people through all the dark
-corners. This is where you come in.
-
-There is a good chance you know more about matplotlib usage in some
-areas, the stuff you do every day, than any of the developers. *Just
-pulled your hair out compiling matplotlib for windows?* Write a FAQ or
-a section for the :ref:`installing` page. *Are you a digital signal
-processing wizard?* Write a tutorial on the signal analysis plotting
-functions like :func:`~matplotlib.pyplot.xcorr`,
-:func:`~matplotlib.pyplot.psd` and
-:func:`~matplotlib.pyplot.specgram`. *Do you use matplotlib with
-`django <ttp://www.djangoproject.com/>`_ or other popular web
-application servers?* Write a FAQ or tutorial and we'll find a place
-for it in the :ref:`users-guide-index`. *Bundle matplotlib in a `py2exe
-<http://www.py2exe.org/>`_ app?* ... I think you get the idea.
-
-matplotlib is documented using the `sphinx
-<http://sphinx.pocoo.org/index.html>`_ extensions to restructured text
-`ReST <http://docutils.sourceforge.net/rst.html>`_. sphinx is a
-extensible python framework for documentation projects which generates
-HTML and PDF, and is pretty easy to write; you can see the source for this
-document or any page on this site by clicking on *Show Source* link
-at the end of the page in the sidebar (or `here
-<../_sources/faq/howto_faq.txt>`_ for this document).
-
-The sphinx website is a good resource for learning sphinx, but we have
-put together a cheat-sheet at :ref:`documenting-matplotlib` which
-shows you how to get started, and outlines the matplotlib conventions
-and extensions, eg for including plots directly from external code in
-your documents.
-
-Once your documentation contributions are working (and hopefully
-tested by actually *building* the docs) you can submit them as a patch
-against svn. See :ref:`install-svn` and :ref:`how-to-submit-patch`.
-Looking for something to do? Search for ``TODO`` at :`search`.
-
-
-.. _how-to-search-examples:
-
-Search examples
-=========================================
-
-The nearly 300 code :ref:`examples-index` included with the matplotlib
-source distribution are full-text searchable from the :ref:`search`
-page, but sometimes when you search, you get a lot of results from the
-:ref:`api-index` or other documentation that you may not be interested in if
-you just want to find a complete, free-standing, working piece of
-example code. To facilitate example searches, we have tagged every
-page with the keyword ``codex`` for *code example* which shouldn't
-appear anywhere else on this site except in the FAQ and in every
-example. So if you want to search for an example that uses an ellipse,
-:ref:`search` for ``codex ellipse``.
-
-
-
-
-.. _howto-click-maps:
-
-Clickable images for HTML
-=========================
-
-Andrew Dalke of `Dalke Scientific <http://www.dalkescientific.com>`_
-has written a nice `article
-<http://www.dalkescientific.com/writings/diary/archive/2005/04/24/interactive_html.html>`_
-on how to make html click maps with matplotlib agg PNGs. We would
-also like to add this functionality to SVG and add a SWF backend to
-support these kind of images. If you are interested in contributing
-to these efforts that would be great.
-
.. _howto-set-zorder:
Control the depth of plot elements
-=============================================
+---------------------------------------
+
Within an axes, the order that the various lines, markers, text,
collections, etc appear is determined by the
:meth:`matplotlib.artist.Artist.set_zorder` property. The default
@@ -463,8 +293,6 @@
line, = ax.plot(x, y, zorder=10)
-
-
.. htmlonly::
See :ref:`pylab_examples-zorder_demo` for a complete example.
@@ -476,7 +304,7 @@
.. _howto-axis-equal:
Make the aspect ratio for plots equal
-===============================================
+-------------------------------------------
The Axes property :meth:`matplotlib.axes.Axes.set_aspect` controls the
aspect ratio of the axes. You can set it to be 'auto', 'equal', or
@@ -494,7 +322,7 @@
.. _howto-movie:
Make a movie
-======================
+-----------------------------------------------
If you want to take an animated plot and turn it into a movie, the
@@ -542,7 +370,7 @@
.. _howto-twoscale:
Multiple y-axis scales
-==================================
+-------------------------------
A frequent request is to have two scales for the left and right
y-axis, which is possible using :func:`~matplotlib.pyplot.twinx` (more
@@ -583,7 +411,7 @@
.. _howto-batch:
Generate images without having a window popup
-===========================================================
+--------------------------------------------------
The easiest way to do this is use an image backend (see
:ref:`what-is-a-backend`) such as Agg (for PNGs), PDF, SVG or PS. In
@@ -604,7 +432,7 @@
.. _howto-show
Use :func:`~matplotlib.pyplot.show`
-=====================================================
+------------------------------------------
The user interface backends need to start the GUI mainloop, and this
is what :func:`~matplotlib.pyplot.show` does. It tells matplotlib to
@@ -656,3 +484,188 @@
though we have made some pregress towards supporting blocking events.
+.. _howto-contribute:
+
+Contributing: howto
+=====================
+
+.. _how-to-submit-patch:
+
+Submit a patch
+-----------------
+
+First obtain a copy of matplotlib svn (see :ref:`install-svn`) and
+make your changes to the matplotlib source code or documentation and
+apply a `svn diff`. If it is feasible, do your diff from the top
+level directory, the one that contains :file:`setup.py`. Eg,::
+
+ > cd /path/to/matplotlib/source
+ > svn diff > mypatch.diff
+
+and then post your patch to the `matplotlib-devel
+<http://sourceforge.net/mail/?group_id=80706>`_ mailing list. If you
+do not get a response within 24 hours, post your patch to the
+sourceforge patch `tracker
+<http://sourceforge.net/tracker2/?atid=560722&group_id=80706&func=browse>`_,
+and follow up on the mailing list with a link to the sourceforge patch
+submissions. If you still do not hear anything within a week (this
+shouldn't happen!), send us a kind and gentle reminder on the mailing
+list.
+
+If you have made lots of local changes and do not want to a diff
+against the entire tree, but rather against a single directory or
+file, that is fine, but we do prefer svn diffs against HEAD.
+
+You should check out the guide to developing matplotlib to make sure
+your patch abides by our coding conventions
+:ref:`developers-guide-index`.
+
+
+.. _how-to-contribute-docs:
+
+Contribute to matplotlib documentation
+-----------------------------------------
+
+matplotlib is a big library, which is used in many ways, and the
+documentation we have only scratches the surface of everything it can
+do. So far, the place most people have learned all these features are
+through studying the examples (:ref:`how-to-search-examples`), which is a
+recommended and great way to learn, but it would be nice to have more
+official narrative documentation guiding people through all the dark
+corners. This is where you come in.
+
+There is a good chance you know more about matplotlib usage in some
+areas, the stuff you do every day, than many of the core developers
+who write most of the documentation. Just pulled your hair out
+compiling matplotlib for windows? Write a FAQ or a section for the
+:ref:`installing` page. Are you a digital signal processing wizard?
+Write a tutorial on the signal analysis plotting functions like
+:func:`~matplotlib.pyplot.xcorr`, :func:`~matplotlib.pyplot.psd` and
+:func:`~matplotlib.pyplot.specgram`. Do you use matplotlib with
+`django <http://www.djangoproject.com>`_ or other popular web
+application servers? Write a FAQ or tutorial and we'll find a place
+for it in the :ref:`users-guide-index`. Bundle matplotlib in a
+`py2exe <http://www.py2exe.org/>`_ app? ... I think you get the idea.
+
+matplotlib is documented using the `sphinx
+<http://sphinx.pocoo.org/index.html>`_ extensions to restructured text
+`ReST <http://docutils.sourceforge.net/rst.html>`_. sphinx is a
+extensible python framework for documentation projects which generates
+HTML and PDF, and is pretty easy to write; you can see the source for this
+document or any page on this site by clicking on *Show Source* link
+at the end of the page in the sidebar (or `here
+<../_sources/faq/howto_faq.txt>`_ for this document).
+
+The sphinx website is a good resource for learning sphinx, but we have
+put together a cheat-sheet at :ref:`documenting-matplotlib` which
+shows you how to get started, and outlines the matplotlib conventions
+and extensions, eg for including plots directly from external code in
+your documents.
+
+Once your documentation contributions are working (and hopefully
+tested by actually *building* the docs) you can submit them as a patch
+against svn. See :ref:`install-svn` and :ref:`how-to-submit-patch`.
+Looking for something to do? Search for `TODO <../search.html?q=todo>`_.
+
+
+
+
+.. _howto-webapp:
+
+Matplotlib in a web application server
+====================================================
+
+Many users report initial problems trying to use maptlotlib in web
+application servers, because by default matplotlib ships configured to
+work with a graphical user interface which may require an X11
+connection. Since many barebones application servers do not have X11
+enabled, you may get errors if you don't configure matplotlib for use
+in these environments. Most importantly, you need to decide what
+kinds of images you want to generate (PNG, PDF, SVG) and configure the
+appropriate default backend. For 99% of users, this will be the Agg
+backend, which uses the C++ `antigrain <http://antigrain.com>`_
+rendering engine to make nice PNGs. The Agg backend is also
+configured to recognize requests to generate other output formats
+(PDF, PS, EPS, SVG). The easiest way to configure matplotlib to use
+Agg is to call::
+
+ # do this before importing pylab or pyplot
+ import matplotlib
+ matplotlib.use('Agg')
+ import matplotlib.pyplot as plt
+
+For more on configuring your backend, see
+:ref:`what-is-a-backend`.
+
+Alternatively, you can avoid pylab/pyplot altogeher, which will give
+you a little more control, by calling the API directly as shown in
+`agg_oo.py <http://matplotlib.sf.net/examples/api/agg_oo.py>`_ .
+
+You can either generate hardcopy on the filesystem by calling savefig::
+
+ # do this before importing pylab or pyplot
+ import matplotlib
+ matplotlib.use('Agg')
+ import matplotlib.pyplot as plt
+ fig = plt.figure()
+ ax = fig.add_subplot(111)
+ ax.plot([1,2,3])
+ fig.savefig('test.png')
+
+or by saving to a file handle::
+
+ import sys
+ fig.savefig(sys.stdout)
+
+
+matplotlib with apache
+------------------------------------
+
+TODO; see :ref:`how-to-contribute-docs`.
+
+matplotlib with django
+------------------------------------
+
+TODO; see :ref:`how-to-contribute-docs`.
+
+matplotlib with zope
+----------------------------------
+
+TODO; see :ref:`how-to-contribute-docs`.
+
+.. _howto-click-maps:
+
+Clickable images for HTML
+-------------------------
+
+Andrew Dalke of `Dalke Scientific <http://www.dalkescientific.com>`_
+has written a nice `article
+<http://www.dalkescientific.com/writings/diary/archive/2005/04/24/interactive_html.html>`_
+on how to make html click maps with matplotlib agg PNGs. We would
+also like to add this functionality to SVG and add a SWF backend to
+support these kind of images. If you are interested in contributing
+to these efforts that would be great.
+
+
+.. _how-to-search-examples:
+
+Search examples
+=========================================
+
+The nearly 300 code :ref:`examples-index` included with the matplotlib
+source distribution are full-text searchable from the :ref:`search`
+page, but sometimes when you search, you get a lot of results from the
+:ref:`api-index` or other documentation that you may not be interested in if
+you just want to find a complete, free-standing, working piece of
+example code. To facilitate example searches, we have tagged every
+page with the keyword ``codex`` for *code example* which shouldn't
+appear anywhere else on this site except in the FAQ and in every
+example. So if you want to search for an example that uses an ellipse,
+:ref:`search` for ``codex ellipse``.
+
+
+
+
+
+
+
Modified: trunk/matplotlib/doc/make.py
===================================================================
--- trunk/matplotlib/doc/make.py 2008-10-17 18:20:09 UTC (rev 6249)
+++ trunk/matplotlib/doc/make.py 2008-10-17 18:51:10 UTC (rev 6250)
@@ -27,13 +27,14 @@
def figs():
os.system('cd users/figures/ && python make.py')
+def examples():
+ 'make the rest examples'
+ os.system('cd examples; svn-clean; python gen_rst.py')
+
def html():
check_build()
- # build the literal include examples for searchable examples
- os.system('cd examples; python gen_rst.py')
-
-
-
+ if not os.path.exists('examples/index.rst'):
+ examples()
#figs()
if os.system('sphinx-build -b html -d build/doctrees . build/html'):
raise SystemExit("Building HTML failed.")
@@ -67,13 +68,11 @@
print 'latex build has not been tested on windows'
def clean():
- if os.path.exists('build'):
- shutil.rmtree('build')
- for fname in glob.glob('pyplots/*.png') + glob.glob('pyplots/*.pdf'):
- os.remove(fname)
+ os.system('svn-clean')
def all():
#figs()
+ examples()
html()
latex()
@@ -84,6 +83,7 @@
'clean':clean,
'sf':sf,
'sfpdf':sfpdf,
+ 'examples':examples,
'all':all,
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins