Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d346f28

Browse files
committed
added custom figure class hook
svn path=/trunk/matplotlib/; revision=2502
1 parent d5cdf55 commit d346f28

24 files changed

Lines changed: 78 additions & 27 deletions

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2006-06-20 Added custom FigureClass hook to pylab interface - see
2+
examples/custom_figure_class.py
3+
14
2006-06-16 Added colormaps from gist (gist_earth, gist_stern,
25
gist_rainbow, gist_gray, gist_yarg, gist_heat, gist_ncar) - JW
36

examples/custom_figure_class.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"""
2+
You can pass a custom Figure constructor to figure if youy want to derive from the default Figure. This simple example creates a figure with a figure title
3+
"""
4+
from pylab import figure, show, nx
5+
from matplotlib.figure import Figure
6+
7+
class MyFigure(Figure):
8+
def __init__(self, *args, **kwargs):
9+
"""
10+
custom kwarg figtitle is passed on to
11+
"""
12+
Figure.__init__(self, *args, **kwargs)
13+
figtitle = kwargs.get('figtitle', 'hi mom')
14+
self.text(0.5, 0.95, figtitle, ha='center')
15+
16+
fig = figure(FigureClass=MyFigure)
17+
ax = fig.add_subplot(111)
18+
ax.plot([1,2,3])
19+
fig.savefig('test.png')
20+
fig.savefig('test.ps')
21+
show()
22+

lib/matplotlib/backends/backend_agg.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,9 @@ def new_figure_manager(num, *args, **kwargs):
355355
if __debug__: verbose.report('backend_agg.new_figure_manager',
356356
'debug-annoying')
357357

358-
thisFig = Figure(*args, **kwargs)
358+
359+
FigureClass = kwargs.pop('FigureClass', Figure)
360+
thisFig = FigureClass(*args, **kwargs)
359361
canvas = FigureCanvasAgg(thisFig)
360362
manager = FigureManagerBase(canvas, num)
361363
return manager

lib/matplotlib/backends/backend_agg2.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ def new_figure_manager(num, *args, **kwargs):
138138
Create a new figure manager instance
139139
"""
140140
if __debug__: verbose.report('backend_agg.new_figure_manager', 'debug-annoying')
141-
142-
thisFig = Figure(*args, **kwargs)
141+
FigureClass = kwargs.pop('FigureClass', Figure)
142+
thisFig = FigureClass(*args, **kwargs)
143143
canvas = FigureCanvasAgg(thisFig)
144144
manager = FigureManagerBase(canvas, num)
145145
return manager

lib/matplotlib/backends/backend_cairo.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,8 @@ def new_figure_manager(num, *args, **kwargs): # called by backends/__init__.py
510510
Create a new figure manager instance
511511
"""
512512
if _debug: print '%s.%s()' % (self.__class__.__name__, _fn_name())
513-
thisFig = Figure(*args, **kwargs)
513+
FigureClass = kwargs.pop('FigureClass', Figure)
514+
thisFig = FigureClass(*args, **kwargs)
514515
canvas = FigureCanvasCairo(thisFig)
515516
manager = FigureManagerBase(canvas, num)
516517
return manager

lib/matplotlib/backends/backend_cocoaagg.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
mplBundle = NSBundle.bundleWithPath_(matplotlib.get_data_path())
3737

3838
def new_figure_manager(num, *args, **kwargs):
39-
thisFig = Figure( *args, **kwargs )
39+
FigureClass = kwargs.pop('FigureClass', Figure)
40+
thisFig = FigureClass( *args, **kwargs )
4041
canvas = FigureCanvasCocoaAgg(thisFig)
4142
return FigureManagerCocoaAgg(canvas, num)
4243

lib/matplotlib/backends/backend_emf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -576,8 +576,8 @@ def new_figure_manager(num, *args, **kwargs):
576576
# do it -- see backend_wx, backend_wxagg and backend_tkagg for
577577
# examples. Not all GUIs require explicit instantiation of a
578578
# main-level app (egg backend_gtk, backend_gtkagg) for pylab
579-
580-
thisFig = Figure(*args, **kwargs)
579+
FigureClass = kwargs.pop('FigureClass', Figure)
580+
thisFig = FigureClass(*args, **kwargs)
581581
canvas = FigureCanvasEMF(thisFig)
582582
manager = FigureManagerEMF(canvas, num)
583583
return manager

lib/matplotlib/backends/backend_fltkagg.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ def new_figure_manager(num, *args, **kwargs):
111111
"""
112112
Create a new figure manager instance
113113
"""
114-
figure = Figure(*args, **kwargs)
114+
FigureClass = kwargs.pop('FigureClass', Figure)
115+
figure = FigureClass(*args, **kwargs)
115116
window = Fltk.Fl_Double_Window(10,10,30,30)
116117
canvas = FigureCanvasFltkAgg(figure)
117118
window.end()

lib/matplotlib/backends/backend_gd.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,8 @@ def new_figure_manager(num, *args, **kwargs):
321321
backends, you'll need to instantiate a new window and embed
322322
the figure in it.
323323
"""
324-
thisFig = Figure(*args, **kwargs)
324+
FigureClass = kwargs.pop('FigureClass', Figure)
325+
thisFig = FigureClass(*args, **kwargs)
325326
canvas = FigureCanvasGD(thisFig)
326327
manager = FigureManagerGD(canvas, num)
327328
return manager

lib/matplotlib/backends/backend_gdk.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,8 @@ def new_figure_manager(num, *args, **kwargs):
460460
"""
461461
Create a new figure manager instance
462462
"""
463-
thisFig = Figure(*args, **kwargs)
463+
FigureClass = kwargs.pop('FigureClass', Figure)
464+
thisFig = FigureClass(*args, **kwargs)
464465
canvas = FigureCanvasGDK(thisFig)
465466
manager = FigureManagerBase(canvas, num)
466467
# equals:

0 commit comments

Comments
 (0)