Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Support multi-version documentation on the website #1067

Merged
merged 7 commits into from

5 participants

@mdboom
Owner
Update index.html page.

This allows for multiple versions of the matplotlib documentation to
be made available.  The scheme is that the root
documentation (i.e. http://matplotlib.sf.net/) will always be the
latest stable version.  Other versions of the documentation will be
available in subdirectories off of the root (the latest stable version
is merely a symlink or redirect back to the root).  This is the same
convention used by "docs.python.org", as an aside.

The index.html page uses some JavaScript to load a little snippet of
HTML from "/versions.html" that lists the available versions.
"versions.html" is not part of this repository, but is part of the
matplotlib.github.com repository and is updated by hand whenever new
versions are added or removed from the archive.  This approach allows
all versions of the documentation to point to all other versions of
the documentation.  This JavaScript XMLHttpRequest magic doesn't
happen when the user is viewing static files on their local machine,
and this is a happy coincidence.

The perhaps controversial outcome of this change is that the summary
list of plotting commands is removed from the front page.  For one, we
want to steer people toward the version of the documentation that
corresponds to the version they are running.  Also, this was a
manually created list, and has become quite out of date over time.
Better, IMHO, to link to the pyplot documentation.

This freed up room to move much of the content that existed in the
sidebar to the main body, where I feel it's much less buried.  I plan
to add a lot more external resources and links, so having the room to
do this would be very helpful.

Adds a "Fork me on Github" banner.
@mdboom mdboom Update index.html page.
This allows for multiple versions of the matplotlib documentation to
be made available.  The scheme is that the root
documentation (i.e. http://matplotlib.sf.net/) will always be the
latest stable version.  Other versions of the documentation will be
available in subdirectories off of the root (the latest stable version
is merely a symlink or redirect back to the root).  This is the same
convention used by "docs.python.org", as an aside.

The index.html page uses some JavaScript to load a little snippet of
HTML from "/versions.html" that lists the available versions.
"versions.html" is not part of this repository, but is part of the
matplotlib.github.com repository and is updated by hand whenever new
versions are added or removed from the archive.  This approach allows
all versions of the documentation to point to all other versions of
the documentation.  This JavaScript XMLHttpRequest magic doesn't
happen when the user is viewing static files on their local machine,
and this is a happy coincidence.

The perhaps controversial outcome of this change is that the summary
list of plotting commands is removed from the front page.  For one, we
want to steer people toward the version of the documentation that
corresponds to the version they are running.  Also, this was a
manually created list, and has become quite out of date over time.
Better, IMHO, to link to the pyplot documentation.

This freed up room to move much of the content that existed in the
sidebar to the main body, where I feel it's much less buried.  I plan
to add a lot more external resources and links, so having the room to
do this would be very helpful.

Adds a "Fork me on Github" banner.
9745bdd
@mdboom
Owner

I put this up on http://matplotlib.github.com/ so you can preview the changes.

@pelson

Perhaps more subtle would be:
Please consider donating ...

Also, is it possible/desirable to provide a page which details the use of the donations? hosting/domain/scipy beers etc.?

Owner

Agreed that that is improved language.

I'll file an issue for adding a page about donations later -- all that stuff is in a bit of flux right now.

@pelson

I have been experimenting with providing support on stackoverflow and have found it really nice. Would we want to encourage that over the user mailing list?

Owner

That's a great idea. I don't know if we necessarily want to encourage one over the other at this point, but it would probably be very helpful to link to the stackoverflow entries tagged with "matplotlib":

http://stackoverflow.com/questions/tagged/matplotlib

@pelson

I'm glad the pyplot functions are removed from the homepage, but maybe a link to the pyplot docs would be helpful.

Owner

It's linked as "list of plotting commands" under the Documentation section. Perhaps it should be elsewhere?

@pelson pelson commented on the diff
doc/_templates/index.html
((1,315 lines not shown))
- <td align="left">
- set the default colormap to spectral
- </td>
+<p>There is an active developer community and a long list of people
+who have made significant <a href="{{ pathto('users/credits')
+}}">contributions</a>.</p>
@pelson Collaborator
pelson added a note

The contributions page could probably do with a refresh too.

@mdboom Owner
mdboom added a note

Agreed. I'll file a separate issue for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
doc/_templates/index.html
((11 lines not shown))
<p>matplotlib tries to make easy things easy and hard things possible.
You can generate plots, histograms, power spectra, bar charts,
errorcharts, scatterplots, etc, with just a few lines of code.
For a sampling, see the <a href="{{ pathto('users/screenshots') }}">screenshots</a>, <a href="{{ pathto('gallery') }}">thumbnail</a> gallery, and
-<a href="examples/index.html">examples</a> directory</p>
-
- <p align="center"><a href="{{ pathto('users/screenshots') }}"><img align="middle"
- src="{{ pathto('_static/logo_sidebar_horiz.png', 1) }}" border="0"
- alt="screenshots"/></a></p>
-
+ <a href="examples/index.html">examples</a> directory</p>
<p>For example, using "ipython -pylab" to provide an interactive
@pelson Collaborator
pelson added a note

This example always bothers me. Could we not change it to use the pyplot interface and leave it to simply mention that this can be done in 2 lines with ipython?

@WeatherGod Collaborator

Actually, I think that the most simple example possible with matplotlib should be front-n-center

However, isn't "ipython -pylab" deprecated for "ipython --pylab"? Of course, we would have to consider when they starting allowing the double-dash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@pelson pelson commented on the diff
doc/_templates/index.html
((1,193 lines not shown))
- <td align="left">
- set the default colormap to jet
- </td>
+ Matplotlib 1.1.1 is available for
+<a href="https://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.1/">download</a>.
@pelson Collaborator
pelson added a note

Can we use the github downloads section instead?

@mdboom Owner
mdboom added a note

I think that's something we'll move to for the next release -- perhaps putting duplicates of the 1.1.1 release there as well at the same time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@WeatherGod
Collaborator

I am not a fan of removing that list of functions. If it gets removed there, then it needs to be somewhere else. The problem isn't with the list itself, it is with maintenance of that list. Surely, we can come up with a sphinx-y way to generate a condensed table of methods from the pyplot.py api?

@fperez
Collaborator

Glad to see you moving in this direction. I've never liked the fact that there's no way to get to mpl's old docs easily, and I actually think that having the website build be part of the project itself is unnecessary and makes things harder than they need to be. I'd kindly suggest that you guys copy the ipython approach, where we have a separate website repo that is lightweight and minimal, and is even managed by a separate team from the main repo team.

That lets people improve the website without having to dig into the entire codebase, and lets you give commit rights to just the website to contributors who may not necessarily be ready to commit into the main repo.

Just a suggestion :)

@mdboom
Owner

The problem with having the list on the front page is that it will go to version-specific documentation of those functions. One of the reasons for this patch is to have a landing page that is non-version-specific and to encourage people to select the version of the documentation that matches their version of matplotlib. But I'm not opposed to sticking the list somewhere else in the tree, and, yes, have it be auto-generated.

@fperez: I had considered moving the landing page to the website repository, but didn't want to change the structure of local docs -- as distributed by Debian for example. That does get me thinking though -- the index.html in the Sphinx docs could certainly be a stripped down version of the landing page that is only ever used in local copies of the docs.

@fperez
Collaborator
@mdboom
Owner

I'm convinced that people are using the plotting command summary, so I've added a commit that generates a plotting command summary automatically. It is not on the front page, because given multi-version documentation, it doesn't make much sense to link directly into a particular version of the docs.

This had quite a few tentacles into other things, the I would like to address fully, but instead chose to do the minimum that will get this done in time for the freeze. For example, sphinx' autosummary directive doesn't alone list all of the members of a given module, so you have to have a way to create the list of commands. pyplot.py had a get_plot_commands function, but it was a hard coded list and rather incomplete. pyplot.py also has a plotting docstring-only function that lists plotting commands -- also hardcoded and out-of-date. And then there's the list in the docs. All three had different subsets of the plotting commands in pyplot.py. So I chose to address all three of these problems at once and make the website based on the plotting docstring, which in turn is generated based on the result of get_plot_commands. The good way to do this would have been to revamp the boilerplate mechanism a little bit, but I'm not sure that's a change to fit in before the freeze. All that long explanation is just to cut off at the chase any "why didn't you also address 'x' while you were in there" sorts of comments. Believe me, this was a hard one to keep reasonably-scoped.

@efiring efiring commented on the diff
doc/users/credits.rst
((14 lines not shown))
+ faster, lighter and meaner. Listen to his podcast.
+
+Tony Yu
+ Has been involved in matplotlib since the early days, and recently
+ has contributed stream plotting among many other improvements. He
+ is the author of mpltools.
+
+Benjamin Root
+ Has significantly improved the capabilities of the 3D plotting. He
+ has improved matplotlib's documentation and code quality throughout,
+ and does invaluable triaging of pull requests and bugs.
+
+Phil Elson
+ Fixed some deep-seated bugs in the transforms framework, and has
+ been laser-focused on improving polish throughout matplotlib,
+ tackling things that have been considered to large and daunting for
@efiring Owner
efiring added a note

"to large" -> "too large"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@efiring
Owner

Since you are updating the credits.rst, I think it is important to add Ian Thomas, who contributed the tricontour and tripcolor capabilities, and Michiel de Hoon, who wrote the macosx backend. (Ian also fixed the masking bug in the regular contour code, which had completely defeated me.)

Also, I am surprised to see this as a merge to v1.1.x; it seems more appropriate for master. No harm in putting it in v1.1.x, though, and then merging to master.

In any case I would be happy to see you go ahead and merge it.

@pelson pelson commented on the diff
boilerplate.py
@@ -246,3 +246,12 @@ def %(name)s():
for name in cmaps:
print _fmtcmap%locals()
+print "# This function was autogenerated by boilerplate.py"
@pelson Collaborator
pelson added a note

This is going to conflict with my changes to boilerplate which were put on master a month or so ago. Is there a reason for basing this against v1.1.x? Can this particular change be avoided to the v1.1.x line?

@mdboom Owner
mdboom added a note

It might conflict and require a different solution on master -- but it needs to be here so the plotting command list can be autogenerated and moved off of the front page of the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@pelson pelson commented on the diff
doc/_templates/index.html
@@ -17,23 +52,17 @@
web application servers, and six graphical user
interface toolkits.</p>
-
-
-
-
+ <p align="center"><a href="{{ pathto('users/screenshots') }}"><img align="middle"
+ src="{{ pathto('_static/logo_sidebar_horiz.png', 1) }}" border="0"
@pelson Collaborator
pelson added a note

The filename is definitely out of date. This image represents the screen-shots on the front page. Perhaps call it screenshot_button.png (the exact name I don't really mind).

@mdboom Owner
mdboom added a note

Ah, ok. Good point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@pelson pelson commented on the diff
lib/matplotlib/pyplot.py
@@ -1677,8 +1704,56 @@ def colormaps():
In interactive mode, this will update the colormap allowing you to
see which one works best for your data.
"""
- pass
-
+ return _colormaps()
+
+
+def _setup_pyplot_info_docstrings():
@pelson Collaborator
pelson added a note

I know its not a public interface, but a docstring would be nice.

@mdboom Owner
mdboom added a note

Sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@pelson pelson commented on the diff
lib/matplotlib/pyplot.py
((10 lines not shown))
+ import re
+
+ def pad(s, l):
+ """Pad string *s* to length *l*."""
+ if l < len(s):
+ return s[:l]
+ return s + ' ' * (l - len(s))
+
+ commands = get_plot_commands()
+
+ first_sentence = re.compile("(?:\s*).+?\.(?:\s+|$)", flags=re.DOTALL)
+
+ # Collect the first sentence of the docstring for all of the
+ # plotting commands.
+ rows = []
+ max_name = 0
@pelson Collaborator
pelson added a note

Did you know there is a markup for rst tables which means you don't need to do this? See http://docutils.sourceforge.net/docs/ref/rst/directives.html#id2

.. csv-table:: Frozen Delights!
   :header: "Treat", "Quantity", "Description"
   :widths: 15, 10, 30

   "Albatross", 2.99, "On a stick!"
   "Crunchy Frog", 1.49, "If we took the bones out, it wouldn't be
   crunchy, now would it?"
   "Gannet Ripple", 1.99, "On a stick!"
@mdboom Owner
mdboom added a note

Sure. But I want this docstring to be human readable as well.

@pelson Collaborator
pelson added a note

Ok. Good point.

P.S. If this were against master, I would consider auto generating the table in boilerplate.py rather than doing it on import of pyplot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@mdboom
Owner

@efiring: Just boneheaded oversight on the credits.rst additions. I will add that. This is merged into 1.1.x because the real impetus for this change is to allow for having multiple versions of the documentation available online -- without breaking too many existing links into the documentation that may exist elsewhere. This involves changing the landing page so it can point to other versions of the documentation and removing the master plot command list from the front page since it's confusing to present that level of detail without making it clear what version of the documentation they would be getting. For the 1.2 release, I'd like to have the 1.1 and 1.2 documentation available simultaneously.

@pelson
Collaborator

I think I agree with @efiring.

This is a massive improvement, but I'm not sure about putting it against v1.1.x. These concerns are down to two main issues:

  • merging to v1.1.x and then over to master will cause some conflicts (boilerplate has been reworked since they diverged)
  • there is no real benefit to applying it to v1.1.x. I don't think it would be appropriate to release this as "the documentation for v1.1.1", as docstrings will be slightly different when comparing online vs inline.

Other than my comments, I am happy with these changes. Thanks @mdboom.

@mdboom
Owner

I hope I've explained why this goes on 1.1.x. If we don't make this change, then it's not made clear that the user is viewing the 1.1.x documentation and be provided with links to the other version. Yes -- some of the docstrings will be different -- but not in any substantive way. We ameliorate that, we could do a 1.1.2 release.

And yes, merging into master will be non-straightforward, but that's fine in the end.

@pelson
Collaborator

Ok. Good answers. You have satisfied me on the need to put it against 1.1.x. +1

@mdboom mdboom merged commit 1057eed into matplotlib:v1.1.x
@mdboom mdboom referenced this pull request
Merged

Doc multi version master #1100

@mdboom mdboom deleted the mdboom:doc_multi_version branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Aug 10, 2012
  1. @mdboom

    Update index.html page.

    mdboom authored
    This allows for multiple versions of the matplotlib documentation to
    be made available.  The scheme is that the root
    documentation (i.e. http://matplotlib.sf.net/) will always be the
    latest stable version.  Other versions of the documentation will be
    available in subdirectories off of the root (the latest stable version
    is merely a symlink or redirect back to the root).  This is the same
    convention used by "docs.python.org", as an aside.
    
    The index.html page uses some JavaScript to load a little snippet of
    HTML from "/versions.html" that lists the available versions.
    "versions.html" is not part of this repository, but is part of the
    matplotlib.github.com repository and is updated by hand whenever new
    versions are added or removed from the archive.  This approach allows
    all versions of the documentation to point to all other versions of
    the documentation.  This JavaScript XMLHttpRequest magic doesn't
    happen when the user is viewing static files on their local machine,
    and this is a happy coincidence.
    
    The perhaps controversial outcome of this change is that the summary
    list of plotting commands is removed from the front page.  For one, we
    want to steer people toward the version of the documentation that
    corresponds to the version they are running.  Also, this was a
    manually created list, and has become quite out of date over time.
    Better, IMHO, to link to the pyplot documentation.
    
    This freed up room to move much of the content that existed in the
    sidebar to the main body, where I feel it's much less buried.  I plan
    to add a lot more external resources and links, so having the room to
    do this would be very helpful.
    
    Adds a "Fork me on Github" banner.
  2. @mdboom

    Gentler donation language.

    mdboom authored
Commits on Aug 16, 2012
  1. @mdboom

    Update credits page

    mdboom authored
  2. @mdboom
  3. @mdboom
Commits on Aug 17, 2012
  1. @mdboom
  2. @mdboom

    Update credits

    mdboom authored
This page is out of date. Refresh to see the latest.
View
11 boilerplate.py
@@ -20,7 +20,7 @@
_fmtplot = """\
# This function was autogenerated by boilerplate.py. Do not edit as
# changes will be lost
-@autogen_docstring(Axes.%(func)s)
+@_autogen_docstring(Axes.%(func)s)
def %(func)s(%(argspec)s):
%(ax)s = gca()
# allow callers to override the hold state by passing hold=True|False
@@ -246,3 +246,12 @@ def %(name)s():
for name in cmaps:
print _fmtcmap%locals()
+print "# This function was autogenerated by boilerplate.py"
@pelson Collaborator
pelson added a note

This is going to conflict with my changes to boilerplate which were put on master a month or so ago. Is there a reason for basing this against v1.1.x? Can this particular change be avoided to the v1.1.x line?

@mdboom Owner
mdboom added a note

It might conflict and require a different solution on master -- but it needs to be here so the plotting command list can be autogenerated and moved off of the front page of the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+print "def _colormaps():"
+print " return ["
+for name in cmaps:
+ print " %r," % name
+print " ]"
+
+print
+print "_setup_pyplot_info_docstrings()"
View
1,354 doc/_templates/index.html
@@ -3,7 +3,42 @@
{% block body %}
- <h1>intro</h1>
+ <script>
+function getSnippet(id, url) {
+var req = false;
+ // For Safari, Firefox, and other non-MS browsers
+ if (window.XMLHttpRequest) {
+ try {
+ req = new XMLHttpRequest();
+ } catch (e) {
+ req = false;
+ }
+ } else if (window.ActiveXObject) {
+ // For Internet Explorer on Windows
+ try {
+ req = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ req = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (e) {
+ req = false;
+ }
+ }
+ }
+ var element = document.getElementById(id);
+ if (req) {
+ // Synchronous request, wait till we have it all
+ req.open('GET', url, false);
+ req.send(null);
+ element.innerHTML = req.responseText;
+ }
+}
+</script>
+
+ <!-- The "Fork me on github" ribbon -->
+ <a href="https://github.com/matplotlib/matplotlib"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png" alt="Fork me on GitHub"></a>
+
+ <h1>Introduction</h1>
<p>matplotlib is a python 2D plotting library which produces
publication quality figures in a variety of hardcopy formats and
@@ -17,23 +52,17 @@
web application servers, and six graphical user
interface toolkits.</p>
-
-
-
-
+ <p align="center"><a href="{{ pathto('users/screenshots') }}"><img align="middle"
+ src="{{ pathto('_static/logo_sidebar_horiz.png', 1) }}" border="0"
@pelson Collaborator
pelson added a note

The filename is definitely out of date. This image represents the screen-shots on the front page. Perhaps call it screenshot_button.png (the exact name I don't really mind).

@mdboom Owner
mdboom added a note

Ah, ok. Good point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+ alt="screenshots"/></a></p>
<p>matplotlib tries to make easy things easy and hard things possible.
You can generate plots, histograms, power spectra, bar charts,
errorcharts, scatterplots, etc, with just a few lines of code.
For a sampling, see the <a href="{{ pathto('users/screenshots') }}">screenshots</a>, <a href="{{ pathto('gallery') }}">thumbnail</a> gallery, and
-<a href="examples/index.html">examples</a> directory</p>
-
- <p align="center"><a href="{{ pathto('users/screenshots') }}"><img align="middle"
- src="{{ pathto('_static/logo_sidebar_horiz.png', 1) }}" border="0"
- alt="screenshots"/></a></p>
+ <a href="examples/index.html">examples</a> directory</p>
-
- <p>For example, using "ipython -pylab" to provide an interactive
+ <p>For example, using <tt>"ipython --pylab"</tt> to provide an interactive
environment, to generate 10,000 gaussian random numbers and plot a
histogram with 100 bins, you simply need to
type</p>
@@ -44,1266 +73,89 @@
<p>For the power user, you have full control of line styles, font
properties, axes properties, etc, via an object oriented interface
- or via a set of functions familiar to MATLAB users.
- The pylab mode provides all of the <a href="api/pyplot_api.html">pyplot</a> plotting
- functions listed below, as well as non-plotting functions from
- <a href="http://scipy.org/Numpy_Example_List_With_Doc">numpy</a> and
- <a href="api/mlab_api.html">matplotlib.mlab</a>.</p>
-
- <h3>plotting commands</h3> <br/>
-
- <table border="1" cellpadding="3" cellspacing="2">
-
- <tr><th>Function</th><th>Description</th></tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.acorr">acorr</a>
-
- </th>
-
- <td align="left">
- plot the autocorrelation function
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.annotate">annotate</a>
-
- </th>
-
- <td align="left">
- annotate something in the figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.arrow">arrow</a>
-
- </th>
-
- <td align="left">
- add an arrow to the axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.axes">axes</a>
-
- </th>
-
- <td align="left">
- create a new axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.axhline">axhline</a>
-
- </th>
-
- <td align="left">
- draw a horizontal line across axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.axvline">axvline</a>
-
- </th>
-
- <td align="left">
- draw a vertical line across axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.axhspan">axhspan</a>
-
- </th>
-
- <td align="left">
- draw a horizontal bar across axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.axvspan">axvspan</a>
-
- </th>
-
- <td align="left">
- draw a vertical bar across axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.axis">axis</a>
-
- </th>
-
- <td align="left">
- set or return the current axis limits
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.barbs">barbs</a>
-
- </th>
-
- <td align="left">
- a (wind) barb plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.bar">bar</a>
-
- </th>
-
- <td align="left">
- make a bar chart
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.barh">barh</a>
-
- </th>
-
- <td align="left">
- a horizontal bar chart
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.broken_barh">broken_barh</a>
-
- </th>
-
- <td align="left">
- a set of horizontal bars with gaps
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.box">box</a>
-
- </th>
-
- <td align="left">
- set the axes frame on/off state
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.boxplot">boxplot</a>
-
- </th>
-
- <td align="left">
- make a box and whisker plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.cla">cla</a>
-
- </th>
-
- <td align="left">
- clear current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.clabel">clabel</a>
-
- </th>
-
- <td align="left">
- label a contour plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.clf">clf</a>
-
- </th>
-
- <td align="left">
- clear a figure window
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.clim">clim</a>
-
- </th>
-
- <td align="left">
- adjust the color limits of the current image
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.close">close</a>
-
- </th>
-
- <td align="left">
- close a figure window
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.colorbar">colorbar</a>
-
- </th>
-
- <td align="left">
- add a colorbar to the current figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.cohere">cohere</a>
-
- </th>
-
- <td align="left">
- make a plot of coherence
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.contour">contour</a>
-
- </th>
-
- <td align="left">
- make a contour plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.contourf">contourf</a>
-
- </th>
-
- <td align="left">
- make a filled contour plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.csd">csd</a>
-
- </th>
-
- <td align="left">
- make a plot of cross spectral density
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.delaxes">delaxes</a>
-
- </th>
-
- <td align="left">
- delete an axes from the current figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.draw">draw</a>
-
- </th>
-
- <td align="left">
- Force a redraw of the current figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.errorbar">errorbar</a>
-
- </th>
-
- <td align="left">
- make an errorbar graph
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.figlegend">figlegend</a>
-
- </th>
-
- <td align="left">
- make legend on the figure rather than the axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.figimage">figimage</a>
-
- </th>
-
- <td align="left">
- make a figure image
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.figtext">figtext</a>
-
- </th>
-
- <td align="left">
- add text in figure coords
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.figure">figure</a>
-
- </th>
-
- <td align="left">
- create or change active figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.fill">fill</a>
-
- </th>
-
- <td align="left">
- make filled polygons
- </td>
-
- </tr>
-
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.fill_between">fill_between</a>
-
- </th>
-
- <td align="left">
- make filled polygons between two curves
- </td>
-
- </tr>
-
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.findobj">findobj</a>
-
- </th>
-
- <td align="left">
- recursively find all objects matching some criteria
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.gca">gca</a>
-
- </th>
-
- <td align="left">
- return the current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.gcf">gcf</a>
-
- </th>
-
- <td align="left">
- return the current figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.gci">gci</a>
-
- </th>
-
- <td align="left">
- get the current image, or None
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.getp">getp</a>
-
- </th>
-
- <td align="left">
- get a graphics property
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.grid">grid</a>
-
- </th>
-
- <td align="left">
- set whether gridding is on
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.hexbin">hexbin</a>
-
- </th>
-
- <td align="left">
- make a 2D hexagonal binning plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.hist">hist</a>
-
- </th>
-
- <td align="left">
- make a histogram
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.hold">hold</a>
-
- </th>
-
- <td align="left">
- set the axes hold state
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.ioff">ioff</a>
-
- </th>
-
- <td align="left">
- turn interaction mode off
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.ion">ion</a>
-
- </th>
-
- <td align="left">
- turn interaction mode on
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.isinteractive">isinteractive</a>
-
- </th>
-
- <td align="left">
- return True if interaction mode is on
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.imread">imread</a>
-
- </th>
-
- <td align="left">
- load image file into array
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.imsave">imsave</a>
-
- </th>
-
- <td align="left">
- save array as an image file
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.imshow">imshow</a>
-
- </th>
-
- <td align="left">
- plot image data
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.ishold">ishold</a>
-
- </th>
-
- <td align="left">
- return the hold state of the current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.legend">legend</a>
-
- </th>
-
- <td align="left">
- make an axes legend
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.locator_params">locator_params</a>
-
- </th>
-
- <td align="left">
- adjust parameters used in locating axis ticks
- </td>
-
- </tr>
-
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.loglog">loglog</a>
-
- </th>
-
- <td align="left">
- a log log plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.matshow">matshow</a>
-
- </th>
-
- <td align="left">
- display a matrix in a new figure preserving aspect
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.margins">margins</a>
-
- </th>
-
- <td align="left">
- set margins used in autoscaling
- </td>
-
- </tr>
-
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.pcolor">pcolor</a>
-
- </th>
-
- <td align="left">
- make a pseudocolor plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.pcolormesh">pcolormesh</a>
-
- </th>
-
- <td align="left">
- make a pseudocolor plot using a quadrilateral mesh
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.pie">pie</a>
-
- </th>
-
- <td align="left">
- make a pie chart
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.plot">plot</a>
-
- </th>
-
- <td align="left">
- make a line plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.plot_date">plot_date</a>
-
- </th>
-
- <td align="left">
- plot dates
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.plotfile">plotfile</a>
-
- </th>
-
- <td align="left">
- plot column data from an ASCII tab/space/comma delimited file
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.pie">pie</a>
-
- </th>
-
- <td align="left">
- pie charts
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.polar">polar</a>
-
- </th>
-
- <td align="left">
- make a polar plot on a PolarAxes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.psd">psd</a>
-
- </th>
-
- <td align="left">
- make a plot of power spectral density
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.quiver">quiver</a>
-
- </th>
-
- <td align="left">
- make a direction field (arrows) plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.rc">rc</a>
-
- </th>
-
- <td align="left">
- control the default params
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.rgrids">rgrids</a>
-
- </th>
-
- <td align="left">
- customize the radial grids and labels for polar
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.savefig">savefig</a>
-
- </th>
-
- <td align="left">
- save the current figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.scatter">scatter</a>
-
- </th>
-
- <td align="left">
- make a scatter plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.setp">setp</a>
-
- </th>
-
- <td align="left">
- set a graphics property
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.semilogx">semilogx</a>
-
- </th>
-
- <td align="left">
- log x axis
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.semilogy">semilogy</a>
-
- </th>
-
- <td align="left">
- log y axis
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.show">show</a>
-
- </th>
-
- <td align="left">
- show the figures
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.specgram">specgram</a>
-
- </th>
-
- <td align="left">
- a spectrogram plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.spy">spy</a>
-
- </th>
-
- <td align="left">
- plot sparsity pattern using markers or image
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.stem">stem</a>
-
- </th>
-
- <td align="left">
- make a stem plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.subplot">subplot</a>
-
- </th>
-
- <td align="left">
- make a subplot (numrows, numcols, axesnum)
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.subplots">subplots</a>
-
- </th>
-
- <td align="left">
- Create a figure with subplots
- </td>
-
- </tr>
-
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.subplots_adjust">subplots_adjust</a>
-
- </th>
-
- <td align="left">
- change the params controlling the subplot positions of current figure
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.subplot_tool">subplot_tool</a>
-
- </th>
-
- <td align="left">
- launch the subplot configuration tool
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.suptitle">suptitle</a>
-
- </th>
-
- <td align="left">
- add a figure title
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.table">table</a>
-
- </th>
-
- <td align="left">
- add a table to the plot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.text">text</a>
-
- </th>
-
- <td align="left">
- add some text at location x,y to the current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.thetagrids">thetagrids</a>
-
- </th>
-
- <td align="left">
- customize the radial theta grids and labels for polar
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.tick_params">tick_params</a>
-
- </th>
-
- <td align="left">
- control the appearance of ticks and tick labels
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.ticklabel_format">ticklabel_format</a>
-
- </th>
-
- <td align="left">
- control the format of tick labels
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.title">title</a>
-
- </th>
-
- <td align="left">
- add a title to the current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.tricontour">tricontour</a>
-
- </th>
-
- <td align="left">
- make a contour plot on a triangular grid
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.tricontourf">tricontourf</a>
-
- </th>
-
- <td align="left">
- make a filled contour plot on a triangular grid
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.tripcolor">tripcolor</a>
-
- </th>
-
- <td align="left">
- make a pseudocolor plot on a triangular grid
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.triplot">triplot</a>
-
- </th>
-
- <td align="left">
- plot a triangular grid
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.xcorr">xcorr</a>
-
- </th>
-
- <td align="left">
- plot the autocorrelation function of x and y
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.xlim">xlim</a>
-
- </th>
-
- <td align="left">
- set/get the xlimits
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.ylim">ylim</a>
-
- </th>
-
- <td align="left">
- set/get the ylimits
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.xticks">xticks</a>
-
- </th>
-
- <td align="left">
- set/get the xticks
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.yticks">yticks</a>
-
- </th>
-
- <td align="left">
- set/get the yticks
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.xlabel">xlabel</a>
-
- </th>
-
- <td align="left">
- add an xlabel to the current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.ylabel">ylabel</a>
-
- </th>
-
- <td align="left">
- add a ylabel to the current axes
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.autumn">autumn</a>
-
- </th>
-
- <td align="left">
- set the default colormap to autumn
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.bone">bone</a>
-
- </th>
-
- <td align="left">
- set the default colormap to bone
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.cool">cool</a>
-
- </th>
-
- <td align="left">
- set the default colormap to cool
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.copper">copper</a>
-
- </th>
-
- <td align="left">
- set the default colormap to copper
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.flag">flag</a>
-
- </th>
-
- <td align="left">
- set the default colormap to flag
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.gray">gray</a>
-
- </th>
-
- <td align="left">
- set the default colormap to gray
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.hot">hot</a>
-
- </th>
-
- <td align="left">
- set the default colormap to hot
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.hsv">hsv</a>
-
- </th>
-
- <td align="left">
- set the default colormap to hsv
- </td>
-
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.jet">jet</a>
+ or via a set of functions familiar to MATLAB users.</p>
- </th>
+ <h1>Download</h1>
- <td align="left">
- set the default colormap to jet
- </td>
+ Matplotlib 1.1.1 is available for
+<a href="https://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.1/">download</a>.
@pelson Collaborator
pelson added a note

Can we use the github downloads section instead?

@mdboom Owner
mdboom added a note

I think that's something we'll move to for the next release -- perhaps putting duplicates of the 1.1.1 release there as well at the same time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.pink">pink</a>
+ <h1>Documentation</h1>
- </th>
+ This is the documentation for matplotlib version {{ version }}.
- <td align="left">
- set the default colormap to pink
- </td>
+ <p id="other_versions"></p>
+ <script>
+ getSnippet('other_versions', '/versions.html');
+ </script>
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.prism">prism</a>
+ <p>Trying to learn how to do a particular kind of plot? Check out
+ the <a href="gallery.html">gallery</a>, <a href="examples/index.html">examples</a>,
+ or the <a href="api/pyplot_summary.html">list of plotting
+ commands</a>.</p>
- </th>
+ <h4>Other learning resources</h4>
- <td align="left">
- set the default colormap to prism
- </td>
+ <ul>
+ <li>Sandro Tosi has a new book
+ <a href="http://www.packtpub.com/matplotlib-python-development/book?utm_source=matplotlib.sourceforge.net&utm_medium=link&utm_content=pod&utm_campaign=mdb_002124">Matplotlib
+ for python developers</a> also
+ at <a href="http://www.amazon.com/Matplotlib-Python-Developers-Sandro-Tosi/dp/1847197906">amazon</a>.</li>
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.spring">spring</a>
+ <li>Nicolas Rougier has
+ a <a href="http://www.loria.fr/~rougier/teaching/matplotlib/">beginner
+ tutorial.</a></li>
- </th>
+ <li>Eric Jones gave
+ an <a href="http://www.youtube.com/watch?v=3Fp1zn5ao2M&feature=plcp">introductory
+ tutorial on Numpy and matplotlib</a> at SciPy 2012.</li>
+ </ul>
- <td align="left">
- set the default colormap to spring
- </td>
+ <h4>Need help?</h4>
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.summer">summer</a>
+<p>Check the <a href="{{ pathto('faq/index') }}">faq</a>,
+the <a href="{{ pathto('api/index') }}">api</a> docs,
+<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=matplotlib-users">mailing
+list archives</a>, and join the matplotlib
+mailing <a href="http://sourceforge.net/mail/?group_id=80706">lists</a>.
+The <a href="{{ pathto('search') }}">search</a> tool searches all of
+the documentation, including full text search of over 350 complete
+examples which exercise almost every corner of matplotlib.</p>
- </th>
+<p>You can file bugs, patches and feature requests on the
+github
+<a href="https://github.com/matplotlib/matplotlib/issues?sort=created&direction=desc&state=open">tracker</a>,
+but it is a good idea to ping us on the mailing list too.</p>
- <td align="left">
- set the default colormap to summer
- </td>
+<p>For details on what's new, see the detailed <a href="{{
+pathto('_static/CHANGELOG', 1) }}">changelog</a> or browse the <a href="https://github.com/matplotlib/matplotlib">source code</a>. Anything that could
+require changes to your existing codes is logged in the <a href="{{
+pathto('api/api_changes.html', 1) }}">api changes</a> file.</p>
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.winter">winter</a>
+<h1>Toolkits</h1>
- </th>
+<p>There are several matplotlib add-on <a href="{{
+pathto('mpl_toolkits/index') }}">toolkits</a>, including the projection
+and mapping toolkit
+<a href="http://matplotlib.github.com/basemap">basemap</a>, 3d plotting with <a href="{{
+pathto('mpl_toolkits/mplot3d/index') }}">mplot3d</a>, axes and axis helpers in <a href="{{
+pathto('mpl_toolkits/axes_grid/index') }}">axes_grid</a> and more.
+ </p>
- <td align="left">
- set the default colormap to winter
- </td>
+ <h1>Open source</h1>
- </tr>
- <tr>
- <th align="left">
- <a href="api/pyplot_api.html#matplotlib.pyplot.spectral">spectral</a>
+<p>Please
+consider <a href="http://sourceforge.net/project/project_donations.php?group_id=80706">donating</a>
+to support matplotlib development.</p>
- </th>
+<p>The matplotlib <a href="{{ pathto('users/license') }}">license</a>
+is based on the Python Software Foundation
+<a href="http://www.python.org/psf/license">(PSF)</a> license.</p>
- <td align="left">
- set the default colormap to spectral
- </td>
+<p>There is an active developer community and a long list of people
+who have made significant <a href="{{ pathto('users/credits')
+}}">contributions</a>.</p>
@pelson Collaborator
pelson added a note

The contributions page could probably do with a refresh too.

@mdboom Owner
mdboom added a note

Agreed. I'll file a separate issue for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
- </tr>
- </table>
<div class="footnote"><p>
<sup><a name="ftn.matlab" href="#matlab">*</a></sup>
View
82 doc/_templates/indexsidebar.html
@@ -1,82 +0,0 @@
-<h3>News</h3>
-
-
-<p>Please <a href="http://sourceforge.net/project/project_donations.php?group_id=80706">donate</a>
-to support matplotlib development.</p>
-
-
-<p>Matplotlib 1.1.1 is available for
-<a href="https://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.1/">download</a>.
-See <a href="{{ pathto('users/whats_new') }}">what's new</a>
-and tips on <a href="{{ pathto('users/installing') }}">installing</a>.
-</p>
-
-<p>Sandro Tosi has a new book
- <a href="http://www.packtpub.com/matplotlib-python-development/book?utm_source=matplotlib.sourceforge.net&utm_medium=link&utm_content=pod&utm_campaign=mdb_002124">Matplotlib for python
- developers</a>
- also
- at <a href="http://www.amazon.com/Matplotlib-Python-Developers-Sandro-Tosi/dp/1847197906">amazon</a>.</p>
-
-<p>Build websites like matplotlib's,
-with <a href="http://sphinx.pocoo.org/">Sphinx</a> and extensions for
-mpl plots, math, inheritance diagrams -- try
-the <a href="http://matplotlib.sf.net/sampledoc">sampledoc</a>
-tutorial.
-</p>
-
-<h3>Videos</h3>
-
-<p>Watch the <a href="http://conference.scipy.org/">SciPy</a> 2009 <a href="http://www.archive.org/details/scipy09_introTutorialDay2_1">intro</a> and <a href="http://www.archive.org/details/scipy09_advancedTutorialDay1_3">advanced</a> matplotlib tutorials
-</p>
-
-<p>Watch
-a <a href="http://videolectures.net/mloss08_hunter_mat">talk</a> about
-matplotlib presented
-at <a href="http://videolectures.net/mloss08_whistler">NIPS 08
-Workshop</a> <i>MLOSS</i></a> and one <a href="http://carlfk.blip.tv/file/2557425">presented</a>
-at <a href="http://chipy.org">ChiPy</a>.
-</p>
-
-
-<h3>Toolkits</h3>
-
-<p>There are several matplotlib add-on <a href="{{
-pathto('mpl_toolkits/index') }}">toolkits</a>, including the projection
-and mapping toolkit
-<a href="http://matplotlib.github.com/basemap">basemap</a>, 3d plotting with <a href="{{
-pathto('mpl_toolkits/mplot3d/index') }}">mplot3d</a>, axes and axis helpers in <a href="{{
-pathto('mpl_toolkits/axes_grid/index') }}">axes_grid</a> and more.
- </p>
-
-<h3>Need help?</h3>
-
-<p>Check the <a href="{{ pathto('users/index') }}">user guide</a>,
-the <a href="{{ pathto('faq/index') }}">faq</a>, the <a href="{{
-pathto('api/index') }}">api</a> docs,
-<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=matplotlib-users">archives</a>,
-and join the matplotlib
-mailing <a href="http://sourceforge.net/mail/?group_id=80706">lists</a>.
-The <a href="{{ pathto('search') }}">search</a> tool searches all of
-the documentation, including full text search of over 350 complete
-examples which exercise almost every corner of matplotlib.</p>
-
-<p>You can file bugs, patches and feature requests on the
-github
-<a href="https://github.com/matplotlib/matplotlib/issues?sort=created&direction=desc&state=open">tracker</a>,
-but it is a good idea to ping us on the mailing list too.</p>
-
-<p>For details on what's new, see the detailed <a href="{{
-pathto('_static/CHANGELOG', 1) }}">changelog</a> or browse the <a href="https://github.com/matplotlib/matplotlib">source code</a>. Anything that could
-require changes to your existing codes is logged in the <a href="{{
-pathto('api/api_changes.html', 1) }}">api changes</a> file.</p>
-
-<h3>Other stuff</h3>
-
-<p>The matplotlib <a href="{{ pathto('users/license') }}">license</a>
-is based on the Python Software Foundation
-<a href="http://www.python.org/psf/license">(PSF)</a> license.</p>
-
-<p>There is an active developer community and a long list of people
-who have made significant <a href="{{ pathto('users/credits')
-}}">contributions</a>.</p>
-
View
1  doc/api/index.rst
@@ -12,6 +12,7 @@
.. toctree::
:maxdepth: 1
+ pyplot_summary.rst
api_changes.rst
matplotlib_configuration_api.rst
afm_api.rst
View
3  doc/api/pyplot_api.rst
@@ -1,7 +1,7 @@
******
pyplot
******
-
+
:mod:`matplotlib.pyplot`
========================
@@ -10,3 +10,4 @@ pyplot
:members:
:undoc-members:
:show-inheritance:
+ :exclude-members: plotting, colormaps
View
8 doc/api/pyplot_summary.rst
@@ -0,0 +1,8 @@
+Plotting commands summary
+=========================
+
+.. currentmodule:: matplotlib.pyplot
+
+.. autofunction:: plotting
+
+.. autofunction:: colormaps
View
2  doc/conf.py
@@ -74,6 +74,8 @@
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
+default_role = 'obj'
+
# Plot directive configuration
# ----------------------------
View
53 doc/users/credits.rst
@@ -6,19 +6,22 @@ Credits
matplotlib was written by John Hunter and is now developed and
-maintained by a number of
-`active <http://www.ohloh.net/projects/matplotlib/contributors>`_
-developers.
+maintained by a number of `active
+<http://www.ohloh.net/projects/matplotlib/contributors>`_ developers.
+The current lead developer of matplotlib is Michael Droettboom.
-Special thanks to those who have made valuable contributions
-(roughly in order of first contribution by date)
+Special thanks to those who have made valuable contributions (roughly
+in order of first contribution by date). Any list like this is bound
+to be incomplete and can't capture the thousands and thousands of
+contributions over the years from these and others:
Jeremy O'Donoghue
wrote the wx backend
-Andrew Straw provided much of the log scaling architecture, the fill
- command, PIL support for imshow, and provided many examples. He
- also wrote the support for dropped axis spines and the `buildbot
+Andrew Straw
+ Provided much of the log scaling architecture, the fill command, PIL
+ support for imshow, and provided many examples. He also wrote the
+ support for dropped axis spines and the `buildbot
<http://mpl-buildbot.code.astraw.com/>`_ unit testing infrastructure
which triggers the JPL/James Evans platform specific builds and
regression test image comparisons from svn matplotlib across
@@ -177,7 +180,39 @@ John Porter, Jonathon Taylor and Reinier Heeres
matplotlib, and Jonathon Taylor and Reinier Heeres ported it to the
refactored transform trunk.
-Jae-Joon Lee implemented fancy arrows and boxes, rewrote the legend
+Jae-Joon Lee
+ Implemented fancy arrows and boxes, rewrote the legend
support to handle multiple columns and fancy text boxes, wrote the
axes grid toolkit, and has made numerous contributions to the code
and documentation
+
+Paul Ivanov
+ Has worked on getting matplotlib integrated better with other tools,
+ such as Sage and IPython, and getting the test infrastructure
+ faster, lighter and meaner. Listen to his podcast.
+
+Tony Yu
+ Has been involved in matplotlib since the early days, and recently
+ has contributed stream plotting among many other improvements. He
+ is the author of mpltools.
+
+Michiel de Hoon
+ Wrote and maintains the macosx backend.
+
+Ian Thomas
+ Contributed, among other things, the triangulation (tricolor and
+ tripcontour) methods.
+
+Benjamin Root
+ Has significantly improved the capabilities of the 3D plotting. He
+ has improved matplotlib's documentation and code quality throughout,
+ and does invaluable triaging of pull requests and bugs.
+
+Phil Elson
+ Fixed some deep-seated bugs in the transforms framework, and has
+ been laser-focused on improving polish throughout matplotlib,
+ tackling things that have been considered to large and daunting for
@efiring Owner
efiring added a note

"to large" -> "too large"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+ a long time.
+
+Damon McDougall
+ Added triangulated 3D surfaces and stack plots to matplotlib.
View
2  lib/matplotlib/__init__.py
@@ -871,7 +871,7 @@ def rc(group, **kwargs):
def rcdefaults():
"""
- Restore the default rc params - these are not the params loaded by
+ Restore the default rc params. These are not the params loaded by
the rc file, but mpl's internal params. See rc_file_defaults for
reloading the default params from the rc file
"""
View
4 lib/matplotlib/artist.py
@@ -730,6 +730,8 @@ def set(self, **kwargs):
def findobj(self, match=None, include_self=True):
"""
+ Find artist objects.
+
pyplot signature:
findobj(o=gcf(), match=None, include_self=True)
@@ -1135,6 +1137,8 @@ def getp(obj, property=None):
def setp(obj, *args, **kwargs):
"""
+ Set a property on an artist object.
+
matplotlib supports the use of :func:`setp` ("set property") and
:func:`getp` to set and get object properties, as well as to do
introspection on the object. For example, to set the linestyle of a
View
159 lib/matplotlib/axes.py
@@ -834,7 +834,7 @@ def _gen_axes_spines(self, locations=None, offset=0.0, units='inches'):
}
def cla(self):
- """Clear the current axes"""
+ """Clear the current axes."""
# Note: this is called by Axes.__init__()
self.xaxis.cla()
self.yaxis.cla()
@@ -1710,7 +1710,7 @@ def set_ymargin(self, m):
def margins(self, *args, **kw):
"""
- Convenience method to set or retrieve autoscaling margins.
+ Set or retrieve autoscaling margins.
signatures::
@@ -1780,6 +1780,8 @@ def get_rasterization_zorder(self):
def autoscale(self, enable=True, axis='both', tight=None):
"""
+ Autoscale the axis view to the data (toggle).
+
Convenience method for simple axis view autoscaling.
It turns autoscaling on or off, and then,
if autoscaling for either axis is on, it performs
@@ -2064,6 +2066,8 @@ def set_axisbelow(self, b):
@docstring.dedent_interpd
def grid(self, b=None, which='major', axis='both', **kwargs):
"""
+ Turn the axes grids on or off.
+
Call signature::
grid(self, b=None, which='major', axis='both', **kwargs)
@@ -2101,8 +2105,8 @@ def grid(self, b=None, which='major', axis='both', **kwargs):
def ticklabel_format(self, **kwargs):
"""
- Convenience method for manipulating the ScalarFormatter
- used by default for linear axes.
+ Change the `~matplotlib.ticker.ScalarFormatter` used by
+ default for linear axes.
Optional keyword arguments:
@@ -2189,7 +2193,7 @@ def ticklabel_format(self, **kwargs):
def locator_params(self, axis='both', tight=None, **kwargs):
"""
- Convenience method for controlling tick locators.
+ Control behavior of tick locators.
Keyword arguments:
@@ -2228,8 +2232,7 @@ def locator_params(self, axis='both', tight=None, **kwargs):
def tick_params(self, axis='both', **kwargs):
"""
- Convenience method for changing the appearance of ticks and
- tick labels.
+ Change the appearance of ticks and tick labels.
Keyword arguments:
@@ -3254,6 +3257,8 @@ def set_ylabel(self, ylabel, fontdict=None, labelpad=None, **kwargs):
def text(self, x, y, s, fontdict=None,
withdash=False, **kwargs):
"""
+ Add text to the axes.
+
Call signature::
text(x, y, s, fontdict=None, **kwargs)
@@ -3334,6 +3339,9 @@ def text(self, x, y, s, fontdict=None,
@docstring.dedent_interpd
def annotate(self, *args, **kwargs):
"""
+ Create an annotation: a piece of text referring to a data
+ point.
+
Call signature::
annotate(s, xy, xytext=None, xycoords='data',
@@ -3358,12 +3366,12 @@ def annotate(self, *args, **kwargs):
@docstring.dedent_interpd
def axhline(self, y=0, xmin=0, xmax=1, **kwargs):
"""
+ Add a horizontal line across the axis.
+
Call signature::
axhline(y=0, xmin=0, xmax=1, **kwargs)
- Axis Horizontal Line
-
Draw a horizontal line at *y* from *xmin* to *xmax*. With the
default values of *xmin* = 0 and *xmax* = 1, this line will
always span the horizontal extent of the axes, regardless of
@@ -3423,12 +3431,12 @@ def axhline(self, y=0, xmin=0, xmax=1, **kwargs):
@docstring.dedent_interpd
def axvline(self, x=0, ymin=0, ymax=1, **kwargs):
"""
+ Add a vertical line across the axes.
+
Call signature::
axvline(x=0, ymin=0, ymax=1, **kwargs)
- Axis Vertical Line
-
Draw a vertical line at *x* from *ymin* to *ymax*. With the
default values of *ymin* = 0 and *ymax* = 1, this line will
always span the vertical extent of the axes, regardless of the
@@ -3488,12 +3496,12 @@ def axvline(self, x=0, ymin=0, ymax=1, **kwargs):
@docstring.dedent_interpd
def axhspan(self, ymin, ymax, xmin=0, xmax=1, **kwargs):
"""
+ Add a horizontal span (rectangle) across the axis.
+
Call signature::
axhspan(ymin, ymax, xmin=0, xmax=1, **kwargs)
- Axis Horizontal Span.
-
*y* coords are in data units and *x* coords are in axes (relative
0-1) units.
@@ -3545,12 +3553,12 @@ def axhspan(self, ymin, ymax, xmin=0, xmax=1, **kwargs):
@docstring.dedent_interpd
def axvspan(self, xmin, xmax, ymin=0, ymax=1, **kwargs):
"""
+ Add a vertical span (rectangle) across the axes.
+
Call signature::
axvspan(xmin, xmax, ymin=0, ymax=1, **kwargs)
- Axis Vertical Span.
-
*x* coords are in data units and *y* coords are in axes (relative
0-1) units.
@@ -3604,6 +3612,8 @@ def axvspan(self, xmin, xmax, ymin=0, ymax=1, **kwargs):
def hlines(self, y, xmin, xmax, colors='k', linestyles='solid',
label='', **kwargs):
"""
+ Plot horizontal lines.
+
call signature::
hlines(y, xmin, xmax, colors='k', linestyles='solid', **kwargs)
@@ -3690,6 +3700,8 @@ def hlines(self, y, xmin, xmax, colors='k', linestyles='solid',
def vlines(self, x, ymin, ymax, colors='k', linestyles='solid',
label='', **kwargs):
"""
+ Plot vertical lines.
+
Call signature::
vlines(x, ymin, ymax, color='k', linestyles='solid')
@@ -3902,6 +3914,8 @@ def plot(self, *args, **kwargs):
def plot_date(self, x, y, fmt='bo', tz=None, xdate=True, ydate=False,
**kwargs):
"""
+ Plot with data with dates.
+
Call signature::
plot_date(x, y, fmt='bo', tz=None, xdate=True, ydate=False, **kwargs)
@@ -3971,12 +3985,12 @@ def plot_date(self, x, y, fmt='bo', tz=None, xdate=True, ydate=False,
@docstring.dedent_interpd
def loglog(self, *args, **kwargs):
"""
+ Make a plot with log scaling on both the *x* and *y* axis.
+
Call signature::
loglog(*args, **kwargs)
- Make a plot with log scaling on the *x* and *y* axis.
-
:func:`~matplotlib.pyplot.loglog` supports all the keyword
arguments of :func:`~matplotlib.pyplot.plot` and
:meth:`matplotlib.axes.Axes.set_xscale` /
@@ -4031,12 +4045,12 @@ def loglog(self, *args, **kwargs):
@docstring.dedent_interpd
def semilogx(self, *args, **kwargs):
"""
+ Make a plot with log scaling on the *x* axis.
+
Call signature::
semilogx(*args, **kwargs)
- Make a plot with log scaling on the *x* axis.
-
:func:`semilogx` supports all the keyword arguments of
:func:`~matplotlib.pyplot.plot` and
:meth:`matplotlib.axes.Axes.set_xscale`.
@@ -4082,12 +4096,12 @@ def semilogx(self, *args, **kwargs):
@docstring.dedent_interpd
def semilogy(self, *args, **kwargs):
"""
+ Make a plot with log scaling on the *y* axis.
+
call signature::
semilogy(*args, **kwargs)
- Make a plot with log scaling on the *y* axis.
-
:func:`semilogy` supports all the keyword arguments of
:func:`~matplotlib.pylab.plot` and
:meth:`matplotlib.axes.Axes.set_yscale`.
@@ -4133,14 +4147,16 @@ def semilogy(self, *args, **kwargs):
@docstring.dedent_interpd
def acorr(self, x, **kwargs):
"""
+ Plot the autocorrelation of *x*.
+
Call signature::
acorr(x, normed=True, detrend=mlab.detrend_none, usevlines=True,
maxlags=10, **kwargs)
- Plot the autocorrelation of *x*. If *normed* = *True*,
- normalize the data by the autocorrelation at 0-th lag. *x* is
- detrended by the *detrend* callable (default no normalization).
+ If *normed* = *True*, normalize the data by the autocorrelation at
+ 0-th lag. *x* is detrended by the *detrend* callable (default no
+ normalization).
Data are plotted as ``plot(lags, c, **kwargs)``
@@ -4195,15 +4211,17 @@ def acorr(self, x, **kwargs):
def xcorr(self, x, y, normed=True, detrend=mlab.detrend_none,
usevlines=True, maxlags=10, **kwargs):
"""
+ Plot the cross correlation between *x* and *y*.
+
Call signature::
xcorr(self, x, y, normed=True, detrend=mlab.detrend_none,
usevlines=True, maxlags=10, **kwargs)
- Plot the cross correlation between *x* and *y*. If *normed* =
- *True*, normalize the data by the cross correlation at 0-th
- lag. *x* and y are detrended by the *detrend* callable
- (default no normalization). *x* and *y* must be equal length.
+ If *normed* = *True*, normalize the data by the cross
+ correlation at 0-th lag. *x* and y are detrended by the
+ *detrend* callable (default no normalization). *x* and *y*
+ must be equal length.
Data are plotted as ``plot(lags, c, **kwargs)``
@@ -4325,13 +4343,15 @@ def get_legend_handles_labels(self, legend_handler_map=None):
def legend(self, *args, **kwargs):
"""
+ Place a legend on the current axes.
+
Call signature::
legend(*args, **kwargs)
- Place a legend on the current axes at location *loc*. Labels are a
- sequence of strings and *loc* can be a string or an integer specifying
- the legend location.
+ Places legend at location *loc*. Labels are a sequence of
+ strings and *loc* can be a string or an integer specifying the
+ legend location.
To make a legend with existing lines::
@@ -4523,12 +4543,14 @@ def legend(self, *args, **kwargs):
def step(self, x, y, *args, **kwargs):
"""
+ Make a step plot.
+
Call signature::