665 lines (549 with data), 51.5 kB
@header@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="matplotlib.html"><font color="#ffffff">matplotlib</font></a>.<a href="matplotlib.backends.html"><font color="#ffffff">backends</font></a>.backend_template</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/backends/backend_template.py">/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/backends/backend_template.py</a></font></td></tr></table>
<p><tt>This is a fully functional do nothing backend to provide a template to<br>
backend writers. It is fully functional in that you can select it as<br>
a backend with<br>
<br>
import matplotlib<br>
matplotlib.use('Template')<br>
<br>
and your matplotlib scripts will (should!) run without error, though<br>
no output is produced. This provides a nice starting point for<br>
backend writers because you can selectively implement methods<br>
(draw_rectangle, draw_lines, etc...) and slowly see your figure come<br>
to life w/o having to have a full blown implementation before getting<br>
any results.<br>
<br>
Copy this to backend_xxx.py and replace all instances of 'template'<br>
with 'xxx'. Then implement the class methods and functions below, and<br>
add 'xxx' to the switchyard in matplotlib/backends/__init__.py and<br>
'xxx' to the backends list in the validate_backend methon in<br>
matplotlib/__init__.py and you're off. You can use your backend with::<br>
<br>
import matplotlib<br>
matplotlib.use('xxx')<br>
from pylab import *<br>
plot([1,2,3])<br>
<a href="#-show">show</a>()<br>
<br>
matplotlib also supports external backends, so you can place you can<br>
use any module in your PYTHONPATH with the syntax::<br>
<br>
import matplotlib<br>
matplotlib.use('module://my_backend')<br>
<br>
where my_backend.py is your module name. Thus syntax is also<br>
recognized in the rc file and in the -d argument in pylab, eg::<br>
<br>
python simple_plot.py -dmodule://my_backend<br>
<br>
The files that are most relevant to backend_writers are<br>
<br>
matplotlib/backends/backend_your_backend.py<br>
matplotlib/backend_bases.py<br>
matplotlib/backends/__init__.py<br>
matplotlib/__init__.py<br>
matplotlib/_pylab_helpers.py<br>
<br>
Naming Conventions<br>
<br>
* classes Upper or MixedUpperCase<br>
<br>
* varables lower or lowerUpper<br>
<br>
* functions lower or underscore_separated</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom> <br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="matplotlib.html">matplotlib</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="matplotlib.backend_bases.html#FigureCanvasBase">matplotlib.backend_bases.FigureCanvasBase</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="matplotlib.backends.backend_template.html#FigureCanvasTemplate">FigureCanvasTemplate</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="matplotlib.backend_bases.html#FigureManagerBase">matplotlib.backend_bases.FigureManagerBase</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="matplotlib.backends.backend_template.html#FigureManagerTemplate">FigureManagerTemplate</a>
</font></dt><dt><font face="helvetica, arial"><a href="matplotlib.backends.backend_template.html#FigureManagerTemplate">FigureManagerTemplate</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="matplotlib.backend_bases.html#GraphicsContextBase">matplotlib.backend_bases.GraphicsContextBase</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="matplotlib.backends.backend_template.html#GraphicsContextTemplate">GraphicsContextTemplate</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="matplotlib.backend_bases.html#RendererBase">matplotlib.backend_bases.RendererBase</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="matplotlib.backends.backend_template.html#RendererTemplate">RendererTemplate</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="FigureCanvasTemplate">class <strong>FigureCanvasTemplate</strong></a>(<a href="matplotlib.backend_bases.html#FigureCanvasBase">matplotlib.backend_bases.FigureCanvasBase</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>The canvas the figure renders into. Calls the draw and print fig<br>
methods, creates the renderers, etc...<br>
<br>
Public attribute<br>
<br>
figure - A Figure instance<br>
<br>
Note GUI templates will want to connect events for button presses,<br>
mouse movements and key presses to functions that call the base<br>
class methods button_press_event, button_release_event,<br>
motion_notify_event, key_press_event, and key_release_event. See,<br>
eg backend_gtk.py, backend_wx.py and backend_tkagg.py<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="FigureCanvasTemplate-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw the figure using the renderer</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-get_default_filetype"><strong>get_default_filetype</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_foo"><strong>print_foo</strong></a>(self, filename, *args, **kwargs)</dt><dd><tt>Write out format foo. The dpi, facecolor and edgecolor are restored<br>
to their original values after this call, so you don't need to<br>
save and restore them.</tt></dd></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>filetypes</strong> = {'emf': 'Enhanced Metafile', 'eps': 'Encapsulated Postscript', 'foo': 'My magic Foo format', 'pdf': 'Portable Document Format', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Raw RGBA bitmap', 'rgba': 'Raw RGBA bitmap', 'svg': 'Scalable Vector Graphics', 'svgz': 'Scalable Vector Graphics'}</dl>
<hr>
Methods inherited from <a href="matplotlib.backend_bases.html#FigureCanvasBase">matplotlib.backend_bases.FigureCanvasBase</a>:<br>
<dl><dt><a name="FigureCanvasTemplate-__init__"><strong>__init__</strong></a>(self, figure)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-blit"><strong>blit</strong></a>(self, bbox<font color="#909090">=None</font>)</dt><dd><tt>blit the canvas in bbox (default entire canvas)</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-button_press_event"><strong>button_press_event</strong></a>(self, x, y, button, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>Backend derived classes should call this function on any mouse<br>
button press. x,y are the canvas coords: 0,0 is lower, left.<br>
button and key are as defined in :class:`MouseEvent`.<br>
<br>
This method will be call all functions connected to the<br>
'button_press_event' with a :class:`MouseEvent` instance.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-button_release_event"><strong>button_release_event</strong></a>(self, x, y, button, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>Backend derived classes should call this function on any mouse<br>
button release.<br>
<br>
*x*<br>
the canvas coordinates where 0=left<br>
<br>
*y*<br>
the canvas coordinates where 0=bottom<br>
<br>
*guiEvent*<br>
the native UI event that generated the mpl event<br>
<br>
<br>
This method will be call all functions connected to the<br>
'button_release_event' with a :class:`MouseEvent` instance.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-draw_cursor"><strong>draw_cursor</strong></a>(self, event)</dt><dd><tt>Draw a cursor in the event.axes if inaxes is not None. Use<br>
native GUI drawing for efficiency if possible</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-draw_event"><strong>draw_event</strong></a>(self, renderer)</dt><dd><tt>This method will be call all functions connected to the<br>
'draw_event' with a :class:`DrawEvent`</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-draw_idle"><strong>draw_idle</strong></a>(self, *args, **kwargs)</dt><dd><tt>:meth:`draw` only if idle; defaults to draw but backends can overrride</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-flush_events"><strong>flush_events</strong></a>(self)</dt><dd><tt>Flush the GUI events for the figure. Implemented only for<br>
backends with GUIs.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-get_supported_filetypes"><strong>get_supported_filetypes</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-get_supported_filetypes_grouped"><strong>get_supported_filetypes_grouped</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-get_width_height"><strong>get_width_height</strong></a>(self)</dt><dd><tt>return the figure width and height in points or pixels<br>
(depending on the backend), truncated to integers</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-idle_event"><strong>idle_event</strong></a>(self, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>call when GUI is idle</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-key_press_event"><strong>key_press_event</strong></a>(self, key, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>This method will be call all functions connected to the<br>
'key_press_event' with a :class:`KeyEvent`</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-key_release_event"><strong>key_release_event</strong></a>(self, key, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>This method will be call all functions connected to the<br>
'key_release_event' with a :class:`KeyEvent`</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-motion_notify_event"><strong>motion_notify_event</strong></a>(self, x, y, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>Backend derived classes should call this function on any<br>
motion-notify-event.<br>
<br>
*x*<br>
the canvas coordinates where 0=left<br>
<br>
*y*<br>
the canvas coordinates where 0=bottom<br>
<br>
*guiEvent*<br>
the native UI event that generated the mpl event<br>
<br>
<br>
This method will be call all functions connected to the<br>
'motion_notify_event' with a :class:`MouseEvent` instance.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-mpl_connect"><strong>mpl_connect</strong></a>(self, s, func)</dt><dd><tt>Connect event with string *s* to *func*. The signature of *func* is::<br>
<br>
def func(event)<br>
<br>
where event is a :class:`matplotlib.backend_bases.Event`. The<br>
following events are recognized<br>
<br>
- 'button_press_event'<br>
- 'button_release_event'<br>
- 'draw_event'<br>
- 'key_press_event'<br>
- 'key_release_event'<br>
- 'motion_notify_event'<br>
- 'pick_event'<br>
- 'resize_event'<br>
- 'scroll_event'<br>
<br>
For the location events (button and key press/release), if the<br>
mouse is over the axes, the variable ``event.inaxes`` will be<br>
set to the :class:`~matplotlib.axes.Axes` the event occurs is<br>
over, and additionally, the variables ``event.xdata`` and<br>
``event.ydata`` will be defined. This is the mouse location<br>
in data coords. See<br>
:class:`~matplotlib.backend_bases.KeyEvent` and<br>
:class:`~matplotlib.backend_bases.MouseEvent` for more info.<br>
<br>
Return value is a connection id that can be used with<br>
:meth:`~matplotlib.backend_bases.Event.mpl_disconnect`.<br>
<br>
Example usage::<br>
<br>
def on_press(event):<br>
print 'you pressed', event.button, event.xdata, event.ydata<br>
<br>
cid = canvas.<a href="#FigureCanvasTemplate-mpl_connect">mpl_connect</a>('button_press_event', on_press)</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-mpl_disconnect"><strong>mpl_disconnect</strong></a>(self, cid)</dt><dd><tt>disconnect callback id cid<br>
<br>
Example usage::<br>
<br>
cid = canvas.<a href="#FigureCanvasTemplate-mpl_connect">mpl_connect</a>('button_press_event', on_press)<br>
#...later<br>
canvas.<a href="#FigureCanvasTemplate-mpl_disconnect">mpl_disconnect</a>(cid)</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-onHilite"><strong>onHilite</strong></a>(self, ev)</dt><dd><tt>Mouse event processor which highlights the artists<br>
under the cursor. Connect this to the 'motion_notify_event'<br>
using::<br>
<br>
canvas.<a href="#FigureCanvasTemplate-mpl_connect">mpl_connect</a>('motion_notify_event',canvas.onHilite)</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-onRemove"><strong>onRemove</strong></a>(self, ev)</dt><dd><tt>Mouse event processor which removes the top artist<br>
under the cursor. Connect this to the 'mouse_press_event'<br>
using::<br>
<br>
canvas.<a href="#FigureCanvasTemplate-mpl_connect">mpl_connect</a>('mouse_press_event',canvas.onRemove)</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-pick"><strong>pick</strong></a>(self, mouseevent)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-pick_event"><strong>pick_event</strong></a>(self, mouseevent, artist, **kwargs)</dt><dd><tt>This method will be called by artists who are picked and will<br>
fire off :class:`PickEvent` callbacks registered listeners</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-print_bmp"><strong>print_bmp</strong></a> = print_raw(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_emf"><strong>print_emf</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_eps"><strong>print_eps</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_figure"><strong>print_figure</strong></a>(self, filename, dpi<font color="#909090">=None</font>, facecolor<font color="#909090">='w'</font>, edgecolor<font color="#909090">='w'</font>, orientation<font color="#909090">='portrait'</font>, format<font color="#909090">=None</font>, **kwargs)</dt><dd><tt>Render the figure to hardcopy. Set the figure patch face and edge<br>
colors. This is useful because some of the GUIs have a gray figure<br>
face color background and you'll probably want to override this on<br>
hardcopy.<br>
<br>
Arguments are:<br>
<br>
*filename*<br>
can also be a file object on image backends<br>
<br>
*orientation*<br>
only currently applies to PostScript printing.<br>
<br>
*dpi*<br>
the dots per inch to save the figure in; if None, use savefig.dpi<br>
<br>
*facecolor*<br>
the facecolor of the figure<br>
<br>
*edgecolor*<br>
the edgecolor of the figure<br>
<br>
*orientation* '<br>
landscape' | 'portrait' (not supported on all backends)<br>
<br>
*format*<br>
when set, forcibly set the file format to save to</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-print_pdf"><strong>print_pdf</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_png"><strong>print_png</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_ps"><strong>print_ps</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_raw"><strong>print_raw</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_rgb"><strong>print_rgb</strong></a> = print_raw(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_svg"><strong>print_svg</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-print_svgz"><strong>print_svgz</strong></a>(self, *args, **kwargs)</dt></dl>
<dl><dt><a name="FigureCanvasTemplate-resize"><strong>resize</strong></a>(self, w, h)</dt><dd><tt>set the canvas size in pixels</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-resize_event"><strong>resize_event</strong></a>(self)</dt><dd><tt>This method will be call all functions connected to the<br>
'resize_event' with a :class:`ResizeEvent`</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-scroll_event"><strong>scroll_event</strong></a>(self, x, y, step, guiEvent<font color="#909090">=None</font>)</dt><dd><tt>Backend derived classes should call this function on any<br>
scroll wheel event. x,y are the canvas coords: 0,0 is lower,<br>
left. button and key are as defined in MouseEvent.<br>
<br>
This method will be call all functions connected to the<br>
'scroll_event' with a :class:`MouseEvent` instance.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-set_window_title"><strong>set_window_title</strong></a>(self, title)</dt><dd><tt>Set the title text of the window containing the figure. Note that<br>
this has no effect if there is no window (eg, a PS backend).</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-start_event_loop"><strong>start_event_loop</strong></a>(self, timeout)</dt><dd><tt>Start an event loop. This is used to start a blocking event<br>
loop so that interactive functions, such as ginput and<br>
waitforbuttonpress, can wait for events. This should not be<br>
confused with the main GUI event loop, which is always running<br>
and has nothing to do with this.<br>
<br>
This is implemented only for backends with GUIs.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-start_event_loop_default"><strong>start_event_loop_default</strong></a>(self, timeout<font color="#909090">=0</font>)</dt><dd><tt>Start an event loop. This is used to start a blocking event<br>
loop so that interactive functions, such as ginput and<br>
waitforbuttonpress, can wait for events. This should not be<br>
confused with the main GUI event loop, which is always running<br>
and has nothing to do with this.<br>
<br>
This function provides default event loop functionality based<br>
on time.sleep that is meant to be used until event loop<br>
functions for each of the GUI backends can be written. As<br>
such, it throws a deprecated warning.<br>
<br>
Call signature::<br>
<br>
<a href="#FigureCanvasTemplate-start_event_loop_default">start_event_loop_default</a>(self,timeout=0)<br>
<br>
This call blocks until a callback function triggers<br>
<a href="#FigureCanvasTemplate-stop_event_loop">stop_event_loop</a>() or *timeout* is reached. If *timeout* is<br>
<=0, never timeout.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-stop_event_loop"><strong>stop_event_loop</strong></a>(self)</dt><dd><tt>Stop an event loop. This is used to stop a blocking event<br>
loop so that interactive functions, such as ginput and<br>
waitforbuttonpress, can wait for events.<br>
<br>
This is implemented only for backends with GUIs.</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-stop_event_loop_default"><strong>stop_event_loop_default</strong></a>(self)</dt><dd><tt>Stop an event loop. This is used to stop a blocking event<br>
loop so that interactive functions, such as ginput and<br>
waitforbuttonpress, can wait for events.<br>
<br>
Call signature::<br>
<br>
<a href="#FigureCanvasTemplate-stop_event_loop_default">stop_event_loop_default</a>(self)</tt></dd></dl>
<dl><dt><a name="FigureCanvasTemplate-switch_backends"><strong>switch_backends</strong></a>(self, FigureCanvasClass)</dt><dd><tt>instantiate an instance of FigureCanvasClass<br>
<br>
This is used for backend switching, eg, to instantiate a<br>
FigureCanvasPS from a FigureCanvasGTK. Note, deep copying is<br>
not done, so any changes to one of the instances (eg, setting<br>
figure size or line props), will be reflected in the other</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="matplotlib.backend_bases.html#FigureCanvasBase">matplotlib.backend_bases.FigureCanvasBase</a>:<br>
<dl><dt><strong>events</strong> = ['resize_event', 'draw_event', 'key_press_event', 'key_release_event', 'button_press_event', 'button_release_event', 'scroll_event', 'motion_notify_event', 'pick_event', 'idle_event']</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><strong>FigureManager</strong> = <a name="FigureManager">class FigureManagerTemplate</a>(<a href="matplotlib.backend_bases.html#FigureManagerBase">matplotlib.backend_bases.FigureManagerBase</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Wrap everything up into a window for the pylab interface<br>
<br>
For non interactive backends, the base class does all the work<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods inherited from <a href="matplotlib.backend_bases.html#FigureManagerBase">matplotlib.backend_bases.FigureManagerBase</a>:<br>
<dl><dt><a name="FigureManagerTemplate-__init__"><strong>__init__</strong></a>(self, canvas, num)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-destroy"><strong>destroy</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-full_screen_toggle"><strong>full_screen_toggle</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-key_press"><strong>key_press</strong></a>(self, event)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-resize"><strong>resize</strong></a>(self, w, h)</dt><dd><tt>For gui backends: resize window in pixels</tt></dd></dl>
<dl><dt><a name="FigureManagerTemplate-set_window_title"><strong>set_window_title</strong></a>(self, title)</dt><dd><tt>Set the title text of the window containing the figure. Note that<br>
this has no effect if there is no window (eg, a PS backend).</tt></dd></dl>
<dl><dt><a name="FigureManagerTemplate-show_popup"><strong>show_popup</strong></a>(self, msg)</dt><dd><tt>Display message in a popup -- GUI only</tt></dd></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="FigureManagerTemplate">class <strong>FigureManagerTemplate</strong></a>(<a href="matplotlib.backend_bases.html#FigureManagerBase">matplotlib.backend_bases.FigureManagerBase</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Wrap everything up into a window for the pylab interface<br>
<br>
For non interactive backends, the base class does all the work<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods inherited from <a href="matplotlib.backend_bases.html#FigureManagerBase">matplotlib.backend_bases.FigureManagerBase</a>:<br>
<dl><dt><a name="FigureManagerTemplate-__init__"><strong>__init__</strong></a>(self, canvas, num)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-destroy"><strong>destroy</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-full_screen_toggle"><strong>full_screen_toggle</strong></a>(self)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-key_press"><strong>key_press</strong></a>(self, event)</dt></dl>
<dl><dt><a name="FigureManagerTemplate-resize"><strong>resize</strong></a>(self, w, h)</dt><dd><tt>For gui backends: resize window in pixels</tt></dd></dl>
<dl><dt><a name="FigureManagerTemplate-set_window_title"><strong>set_window_title</strong></a>(self, title)</dt><dd><tt>Set the title text of the window containing the figure. Note that<br>
this has no effect if there is no window (eg, a PS backend).</tt></dd></dl>
<dl><dt><a name="FigureManagerTemplate-show_popup"><strong>show_popup</strong></a>(self, msg)</dt><dd><tt>Display message in a popup -- GUI only</tt></dd></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="GraphicsContextTemplate">class <strong>GraphicsContextTemplate</strong></a>(<a href="matplotlib.backend_bases.html#GraphicsContextBase">matplotlib.backend_bases.GraphicsContextBase</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>The graphics context provides the color, line styles, etc... See the gtk<br>
and postscript backends for examples of mapping the graphics context<br>
attributes (cap styles, join styles, line widths, colors) to a particular<br>
backend. In GTK this is done by wrapping a gtk.gdk.GC object and<br>
forwarding the appropriate calls to it using a dictionary mapping styles<br>
to gdk constants. In Postscript, all the work is done by the renderer,<br>
mapping line styles to postscript calls.<br>
<br>
If it's more appropriate to do the mapping at the renderer level (as in<br>
the postscript backend), you don't need to override any of the GC methods.<br>
If it's more appropriate to wrap an instance (as in the GTK backend) and<br>
do the mapping here, you'll need to override several of the setter<br>
methods.<br>
<br>
The base GraphicsContext stores colors as a RGB tuple on the unit<br>
interval, eg, (0.5, 0.0, 1.0). You may need to map this to colors<br>
appropriate for your backend.<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods inherited from <a href="matplotlib.backend_bases.html#GraphicsContextBase">matplotlib.backend_bases.GraphicsContextBase</a>:<br>
<dl><dt><a name="GraphicsContextTemplate-__init__"><strong>__init__</strong></a>(self)</dt></dl>
<dl><dt><a name="GraphicsContextTemplate-copy_properties"><strong>copy_properties</strong></a>(self, gc)</dt><dd><tt>Copy properties from gc to self</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_alpha"><strong>get_alpha</strong></a>(self)</dt><dd><tt>Return the alpha value used for blending - not supported on<br>
all backends</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_antialiased"><strong>get_antialiased</strong></a>(self)</dt><dd><tt>Return true if the object should try to do antialiased rendering</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_capstyle"><strong>get_capstyle</strong></a>(self)</dt><dd><tt>Return the capstyle as a string in ('butt', 'round', 'projecting')</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_clip_path"><strong>get_clip_path</strong></a>(self)</dt><dd><tt>Return the clip path in the form (path, transform), where path<br>
is a :class:`~matplotlib.path.Path` instance, and transform is<br>
an affine transform to apply to the path before clipping.</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_clip_rectangle"><strong>get_clip_rectangle</strong></a>(self)</dt><dd><tt>Return the clip rectangle as a :class:`~matplotlib.transforms.Bbox` instance</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_dashes"><strong>get_dashes</strong></a>(self)</dt><dd><tt>Return the dash information as an offset dashlist tuple The<br>
dash list is a even size list that gives the ink on, ink off<br>
in pixels. See p107 of to postscript `BLUEBOOK<br>
<<a href="http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF>`_">http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF>`_</a><br>
for more info<br>
<br>
Default value is None</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_hatch"><strong>get_hatch</strong></a>(self)</dt><dd><tt>Gets the current hatch style</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_joinstyle"><strong>get_joinstyle</strong></a>(self)</dt><dd><tt>Return the line join style as one of ('miter', 'round', 'bevel')</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_linestyle"><strong>get_linestyle</strong></a>(self, style)</dt><dd><tt>Return the linestyle: one of ('solid', 'dashed', 'dashdot',<br>
'dotted').</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_linewidth"><strong>get_linewidth</strong></a>(self)</dt><dd><tt>Return the line width in points as a scalar</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-get_rgb"><strong>get_rgb</strong></a>(self)</dt><dd><tt>returns a tuple of three floats from 0-1. color can be a<br>
matlab format string, a html hex color string, or a rgb tuple</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_alpha"><strong>set_alpha</strong></a>(self, alpha)</dt><dd><tt>Set the alpha value used for blending - not supported on<br>
all backends</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_antialiased"><strong>set_antialiased</strong></a>(self, b)</dt><dd><tt>True if object should be drawn with antialiased rendering</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_capstyle"><strong>set_capstyle</strong></a>(self, cs)</dt><dd><tt>Set the capstyle as a string in ('butt', 'round', 'projecting')</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_clip_path"><strong>set_clip_path</strong></a>(self, path)</dt><dd><tt>Set the clip path and transformation. Path should be a<br>
:class:`~matplotlib.transforms.TransformedPath` instance.</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_clip_rectangle"><strong>set_clip_rectangle</strong></a>(self, rectangle)</dt><dd><tt>Set the clip rectangle with sequence (left, bottom, width, height)</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_dashes"><strong>set_dashes</strong></a>(self, dash_offset, dash_list)</dt><dd><tt>Set the dash style for the gc.<br>
<br>
*dash_offset*<br>
is the offset (usually 0).<br>
<br>
*dash_list*<br>
specifies the on-off sequence as points. ``(None, None)`` specifies a solid line</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_foreground"><strong>set_foreground</strong></a>(self, fg, isRGB<font color="#909090">=False</font>)</dt><dd><tt>Set the foreground color. fg can be a matlab format string, a<br>
html hex color string, an rgb unit tuple, or a float between 0<br>
and 1. In the latter case, grayscale is used.<br>
<br>
The :class:`<a href="matplotlib.backend_bases.html#GraphicsContextBase">GraphicsContextBase</a>` converts colors to rgb<br>
internally. If you know the color is rgb already, you can set<br>
``isRGB=True`` to avoid the performace hit of the conversion</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_graylevel"><strong>set_graylevel</strong></a>(self, frac)</dt><dd><tt>Set the foreground color to be a gray level with *frac*</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_hatch"><strong>set_hatch</strong></a>(self, hatch)</dt><dd><tt>Sets the hatch style for filling</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_joinstyle"><strong>set_joinstyle</strong></a>(self, js)</dt><dd><tt>Set the join style to be one of ('miter', 'round', 'bevel')</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_linestyle"><strong>set_linestyle</strong></a>(self, style)</dt><dd><tt>Set the linestyle to be one of ('solid', 'dashed', 'dashdot',<br>
'dotted').</tt></dd></dl>
<dl><dt><a name="GraphicsContextTemplate-set_linewidth"><strong>set_linewidth</strong></a>(self, w)</dt><dd><tt>Set the linewidth in points</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="matplotlib.backend_bases.html#GraphicsContextBase">matplotlib.backend_bases.GraphicsContextBase</a>:<br>
<dl><dt><strong>dashd</strong> = {'dashdot': (0, (3.0, 5.0, 1.0, 5.0)), 'dashed': (0, (6.0, 6.0)), 'dotted': (0, (1.0, 3.0)), 'solid': (None, None)}</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="RendererTemplate">class <strong>RendererTemplate</strong></a>(<a href="matplotlib.backend_bases.html#RendererBase">matplotlib.backend_bases.RendererBase</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>The renderer handles drawing/rendering operations.<br>
<br>
This is a minimal do-nothing class that can be used to get started when<br>
writing a new backend. Refer to backend_bases.<a href="matplotlib.backend_bases.html#RendererBase">RendererBase</a> for<br>
documentation of the classes methods.<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="RendererTemplate-__init__"><strong>__init__</strong></a>(self, dpi)</dt></dl>
<dl><dt><a name="RendererTemplate-draw_image"><strong>draw_image</strong></a>(self, x, y, im, bbox, clippath<font color="#909090">=None</font>, clippath_trans<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="RendererTemplate-draw_path"><strong>draw_path</strong></a>(self, gc, path, transform, rgbFace<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="RendererTemplate-draw_text"><strong>draw_text</strong></a>(self, gc, x, y, s, prop, angle, ismath<font color="#909090">=False</font>)</dt></dl>
<dl><dt><a name="RendererTemplate-flipy"><strong>flipy</strong></a>(self)</dt></dl>
<dl><dt><a name="RendererTemplate-get_canvas_width_height"><strong>get_canvas_width_height</strong></a>(self)</dt></dl>
<dl><dt><a name="RendererTemplate-get_text_width_height_descent"><strong>get_text_width_height_descent</strong></a>(self, s, prop, ismath)</dt></dl>
<dl><dt><a name="RendererTemplate-new_gc"><strong>new_gc</strong></a>(self)</dt></dl>
<dl><dt><a name="RendererTemplate-points_to_pixels"><strong>points_to_pixels</strong></a>(self, points)</dt></dl>
<hr>
Methods inherited from <a href="matplotlib.backend_bases.html#RendererBase">matplotlib.backend_bases.RendererBase</a>:<br>
<dl><dt><a name="RendererTemplate-close_group"><strong>close_group</strong></a>(self, s)</dt><dd><tt>Close a grouping element with label *s*<br>
Is only currently used by :mod:`~matplotlib.backends.backend_svg`</tt></dd></dl>
<dl><dt><a name="RendererTemplate-draw_markers"><strong>draw_markers</strong></a>(self, gc, marker_path, marker_trans, path, trans, rgbFace<font color="#909090">=None</font>)</dt><dd><tt>Draws a marker at each of the vertices in path. This includes<br>
all vertices, including control points on curves. To avoid<br>
that behavior, those vertices should be removed before calling<br>
this function.<br>
<br>
*gc*<br>
the :class:`<a href="matplotlib.backend_bases.html#GraphicsContextBase">GraphicsContextBase</a>` instance<br>
<br>
*marker_trans*<br>
is an affine transform applied to the marker.<br>
<br>
*trans*<br>
is an affine transform applied to the path.<br>
<br>
This provides a fallback implementation of draw_markers that<br>
makes multiple calls to :meth:`draw_path`. Some backends may<br>
want to override this method in order to draw the marker only<br>
once and reuse it multiple times.</tt></dd></dl>
<dl><dt><a name="RendererTemplate-draw_path_collection"><strong>draw_path_collection</strong></a>(self, master_transform, cliprect, clippath, clippath_trans, paths, all_transforms, offsets, offsetTrans, facecolors, edgecolors, linewidths, linestyles, antialiaseds)</dt><dd><tt>Draws a collection of paths, selecting drawing properties from<br>
the lists *facecolors*, *edgecolors*, *linewidths*,<br>
*linestyles* and *antialiaseds*. *offsets* is a list of<br>
offsets to apply to each of the paths. The offsets in<br>
*offsets* are first transformed by *offsetTrans* before<br>
being applied.<br>
<br>
This provides a fallback implementation of<br>
:meth:`draw_path_collection` that makes multiple calls to<br>
draw_path. Some backends may want to override this in order<br>
to render each set of path data only once, and then reference<br>
that path multiple times with the different offsets, colors,<br>
styles etc. The generator methods<br>
:meth:`_iter_collection_raw_paths` and<br>
:meth:`_iter_collection` are provided to help with (and<br>
standardize) the implementation across backends. It is highly<br>
recommended to use those generators, so that changes to the<br>
behavior of :meth:`draw_path_collection` can be made globally.</tt></dd></dl>
<dl><dt><a name="RendererTemplate-draw_quad_mesh"><strong>draw_quad_mesh</strong></a>(self, master_transform, cliprect, clippath, clippath_trans, meshWidth, meshHeight, coordinates, offsets, offsetTrans, facecolors, antialiased, showedges)</dt><dd><tt>This provides a fallback implementation of<br>
:meth:`draw_quad_mesh` that generates paths and then calls<br>
:meth:`draw_path_collection`.</tt></dd></dl>
<dl><dt><a name="RendererTemplate-draw_tex"><strong>draw_tex</strong></a>(self, gc, x, y, s, prop, angle, ismath<font color="#909090">='TeX!'</font>)</dt></dl>
<dl><dt><a name="RendererTemplate-get_image_magnification"><strong>get_image_magnification</strong></a>(self)</dt><dd><tt>Get the factor by which to magnify images passed to :meth:`draw_image`.<br>
Allows a backend to have images at a different resolution to other<br>
artists.</tt></dd></dl>
<dl><dt><a name="RendererTemplate-get_texmanager"><strong>get_texmanager</strong></a>(self)</dt><dd><tt>return the :class:`matplotlib.texmanager.TexManager` instance</tt></dd></dl>
<dl><dt><a name="RendererTemplate-open_group"><strong>open_group</strong></a>(self, s)</dt><dd><tt>Open a grouping element with label *s*. Is only currently used by<br>
:mod:`~matplotlib.backends.backend_svg`</tt></dd></dl>
<dl><dt><a name="RendererTemplate-option_image_nocomposite"><strong>option_image_nocomposite</strong></a>(self)</dt><dd><tt>overwrite this method for renderers that do not necessarily<br>
want to rescale and composite raster images. (like SVG)</tt></dd></dl>
<dl><dt><a name="RendererTemplate-start_rasterizing"><strong>start_rasterizing</strong></a>(self)</dt></dl>
<dl><dt><a name="RendererTemplate-stop_rasterizing"><strong>stop_rasterizing</strong></a>(self)</dt></dl>
<dl><dt><a name="RendererTemplate-strip_math"><strong>strip_math</strong></a>(self, s)</dt></dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt><a name="-draw_if_interactive"><strong>draw_if_interactive</strong></a>()</dt><dd><tt>For image backends - is not required<br>
For GUI backends - this should be overriden if drawing should be done in<br>
interactive python mode</tt></dd></dl>
<dl><dt><a name="-new_figure_manager"><strong>new_figure_manager</strong></a>(num, *args, **kwargs)</dt><dd><tt>Create a new figure manager instance</tt></dd></dl>
<dl><dt><a name="-show"><strong>show</strong></a>()</dt><dd><tt>For image backends - is not required<br>
For GUI backends - <a href="#-show">show</a>() is usually the last line of a pylab script and<br>
tells the backend that it is time to draw. In interactive mode, this may<br>
be a do nothing func. See the GTK backend for an example of how to handle<br>
interactive versus batch mode</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
<td width="100%"><strong>division</strong> = _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)</td></tr></table>
@footer@