Skip to content

Commit ab210a1

Browse files
committed
More scipy support added
svn path=/trunk/matplotlib/; revision=1907
1 parent a4fa82f commit ab210a1

11 files changed

Lines changed: 1078 additions & 1051 deletions

File tree

lib/matplotlib/backends/backend_agg.py

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
66
* capstyles and join styles
77
* dashes
8-
* linewidth
8+
* linewidth
99
* lines, rectangles, ellipses
1010
* clipping to a rectangle
1111
* output to RGBA and PNG
1212
* alpha blending
1313
* DPI scaling properly - everything scales properly (dashes, linewidths, etc)
14-
* draw polygon
14+
* draw polygon
1515
* freetype2 w/ ft2font
1616
1717
TODO:
@@ -21,8 +21,8 @@
2121
* allow load from png
2222
2323
* integrate screen dpi w/ ppi and text
24-
25-
INSTALLING
24+
25+
INSTALLING
2626
2727
REQUIREMENTs
2828
@@ -32,7 +32,7 @@
3232
freetype 2
3333
libpng
3434
libz
35-
35+
3636
Install AGG2 (cut and paste below into xterm should work)
3737
3838
wget http://www.antigrain.com/agg2.tar.gz
@@ -46,7 +46,7 @@
4646
4747
Installing backend_agg
4848
49-
49+
5050
Edit setup.py: change aggsrc to point to the agg2 src tree and
5151
replace if 0: with if 1: in the backend_agg section
5252
@@ -59,13 +59,13 @@
5959
6060
Using agg backend
6161
62-
python somefile.py -dAgg
62+
python somefile.py -dAgg
6363
6464
or
6565
6666
import matplotlib
6767
matplotlib.use('Agg')
68-
68+
6969
7070
"""
7171
from __future__ import division
@@ -90,8 +90,10 @@
9090

9191
if matplotlib.numerix.which[0] == "numarray":
9292
from _na_backend_agg import RendererAgg as _RendererAgg
93-
else:
93+
elif matplotlib.numerix.which[0] == "numeric":
9494
from _nc_backend_agg import RendererAgg as _RendererAgg
95+
else:
96+
from _ns_backend_agg import RendererAgg as _RendererAgg
9597

9698
backend_version = 'v2.2'
9799
_fontd = {} # a map from fname to font instances
@@ -102,7 +104,7 @@ class RendererAgg(RendererBase):
102104
The renderer handles all the drawing primitives using a graphics
103105
context instance that controls the colors/styles
104106
"""
105-
107+
106108
debug=1
107109
texd = {} # a cache of tex image rasters
108110
def __init__(self, width, height, dpi):
@@ -123,8 +125,8 @@ def __init__(self, width, height, dpi):
123125
self.draw_regpoly_collection = self._renderer.draw_regpoly_collection
124126

125127
self.copy_from_bbox = self._renderer.copy_from_bbox
126-
self.restore_region = self._renderer.restore_region
127-
128+
self.restore_region = self._renderer.restore_region
129+
128130

129131
self.texmanager = TexManager()
130132

@@ -144,7 +146,7 @@ def draw_arc(self, gcEdge, rgbFace, x, y, width, height, angle1, angle2):
144146
if __debug__: verbose.report('RendererAgg.draw_arc', 'debug-annoying')
145147
self._renderer.draw_ellipse(
146148
gcEdge, rgbFace, x, y, width/2, height/2) # ellipse takes radius
147-
149+
148150

149151
def _draw_image(self, x, y, im):
150152
"""
@@ -153,7 +155,7 @@ def _draw_image(self, x, y, im):
153155
"""
154156
if __debug__: verbose.report('RendererAgg.draw_image', 'debug-annoying')
155157
#self._renderer.draw_image(int(x), int(self.height-y), im)
156-
self._renderer.draw_image(int(x), int(y), im)
158+
self._renderer.draw_image(int(x), int(y), im)
157159

158160
def draw_line(self, gc, x1, y1, x2, y2):
159161
"""
@@ -173,33 +175,33 @@ def draw_point(self, gc, x, y):
173175
if __debug__: verbose.report('RendererAgg.draw_point', 'debug-annoying')
174176
rgbFace = gc.get_rgb()
175177
self._renderer.draw_ellipse(
176-
gc, rgbFace, x, y, 0.5, 0.5)
178+
gc, rgbFace, x, y, 0.5, 0.5)
177179

178-
def draw_mathtext(self, gc, x, y, s, prop, angle):
180+
def draw_mathtext(self, gc, x, y, s, prop, angle):
179181
"""
180182
Draw the math text using matplotlib.mathtext
181183
"""
182184
if __debug__: verbose.report('RendererAgg.draw_mathtext', 'debug-annoying')
183185
size = prop.get_size_in_points()
184186
width, height, fonts = math_parse_s_ft2font(
185187
s, self.dpi.get(), size, angle)
186-
188+
187189
if angle == 90:
188190
width, height = height, width
189191
for font in fonts:
190-
if angle == 90:
192+
if angle == 90:
191193
font.horiz_image_to_vert_image() # <-- Rotate
192194
self._renderer.draw_text( font, int(x)-width, int(y)-height, gc)
193195
else:
194-
self._renderer.draw_text( font, int(x), int(y)-height, gc)
196+
self._renderer.draw_text( font, int(x), int(y)-height, gc)
195197
if 0:
196198
self._renderer.draw_rectangle(gc, None,
197199
int(x),
198200
self.height-int(y),
199201
width, height)
200202

201203

202-
204+
203205
def draw_text(self, gc, x, y, s, prop, angle, ismath):
204206
"""
205207
Render the text
@@ -219,9 +221,9 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath):
219221
font.draw_glyphs_to_bitmap()
220222

221223
#print x, y, int(x), int(y)
222-
224+
223225
self._renderer.draw_text(font, int(x), int(y), gc)
224-
226+
225227

226228
def get_text_width_height(self, s, prop, ismath, rgb=(0,0,0)):
227229
"""
@@ -240,7 +242,7 @@ def get_text_width_height(self, s, prop, ismath, rgb=(0,0,0)):
240242
Z = self.texmanager.get_rgba(s, size, dpi, rgb)
241243
m,n,tmp = Z.shape
242244
return n,m
243-
245+
244246
if ismath:
245247
width, height, fonts = math_parse_s_ft2font(
246248
s, self.dpi.get(), prop.get_size_in_points())
@@ -285,13 +287,13 @@ def func(x):
285287
Z[:,:,3] = func(a)
286288
im = fromarray(Z, 1)
287289
im.flipud_out()
288-
self.texd[key] = im
290+
self.texd[key] = im
289291

290292
cliprect = gc.get_clip_rectangle()
291293
if cliprect is None: bbox = None
292294
else: bbox = lbwh_to_bbox(*cliprect)
293295
self.draw_image(x, self.height-y, im, bbox)
294-
296+
295297
def get_canvas_width_height(self):
296298
'return the canvas width and height in display coords'
297299
return self.width, self.height
@@ -305,7 +307,7 @@ def _get_agg_font(self, prop):
305307

306308
key = hash(prop)
307309
font = _fontd.get(key)
308-
310+
309311
if font is None:
310312
fname = fontManager.findfont(prop)
311313
font = FT2Font(str(fname))
@@ -333,16 +335,16 @@ def tostring_rgb(self):
333335
def tostring_argb(self):
334336
if __debug__: verbose.report('RendererAgg.tostring_argb', 'debug-annoying')
335337
return self._renderer.tostring_argb()
336-
338+
337339
def buffer_rgba(self,x,y):
338340
if __debug__: verbose.report('RendererAgg.buffer_rgba', 'debug-annoying')
339341
return self._renderer.buffer_rgba(x,y)
340-
342+
341343
def clear(self):
342344
self._renderer.clear()
343-
344345

345-
346+
347+
346348
def new_figure_manager(num, *args, **kwargs):
347349
"""
348350
Create a new figure manager instance
@@ -363,7 +365,7 @@ class FigureCanvasAgg(FigureCanvasBase):
363365
Public attribute
364366
365367
figure - A Figure instance
366-
"""
368+
"""
367369

368370
def copy_from_bbox(self, bbox):
369371
renderer = self.get_renderer()
@@ -372,7 +374,7 @@ def copy_from_bbox(self, bbox):
372374
def restore_region(self, region):
373375
renderer = self.get_renderer()
374376
return renderer.restore_region(region)
375-
377+
376378
def draw(self):
377379
"""
378380
Draw the figure using the renderer
@@ -393,19 +395,19 @@ def get_renderer(self):
393395
self.renderer = RendererAgg(w, h, self.figure.dpi)
394396
self._lastKey = key
395397
return self.renderer
396-
398+
397399
def tostring_rgb(self):
398400
if __debug__: verbose.report('FigureCanvasAgg.tostring_rgb', 'debug-annoying')
399401
return self.renderer.tostring_rgb()
400402

401403
def tostring_argb(self):
402404
if __debug__: verbose.report('FigureCanvasAgg.tostring_argb', 'debug-annoying')
403405
return self.renderer.tostring_argb()
404-
406+
405407
def buffer_rgba(self,x,y):
406408
if __debug__: verbose.report('FigureCanvasAgg.buffer_rgba', 'debug-annoying')
407409
return self.renderer.buffer_rgba(x,y)
408-
410+
409411
def print_figure(self, filename, dpi=150,
410412
facecolor='w', edgecolor='w',
411413
orientation='portrait'):
@@ -424,7 +426,7 @@ def print_figure(self, filename, dpi=150,
424426
"""
425427
if __debug__: verbose.report('FigureCanvasAgg.print_figure', 'debug-annoying')
426428

427-
429+
428430

429431
# store the orig figure dpi, color and size information so we
430432
# can restore them later. For image creation alone, this is
@@ -455,7 +457,7 @@ def print_figure(self, filename, dpi=150,
455457
if not len(ext):
456458
ext = '.png'
457459
filename += ext
458-
460+
459461
ext = ext.lower()
460462
if (ext.find('rgb')>=0 or
461463
ext.find('raw')>=0 or

0 commit comments

Comments
 (0)