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

Skip to content

Commit 078d6c0

Browse files
committed
added agg buffer to numpy array example
svn path=/trunk/matplotlib/; revision=3532
1 parent 5cffcf3 commit 078d6c0

3 files changed

Lines changed: 29 additions & 3 deletions

File tree

examples/agg_buffer_to_array.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import matplotlib
2+
matplotlib.use('Agg')
3+
from pylab import figure, show
4+
import numpy as npy
5+
6+
# make an agg figure
7+
fig = figure()
8+
ax = fig.add_subplot(111)
9+
ax.plot([1,2,3])
10+
ax.set_title('a simple figure')
11+
fig.canvas.draw()
12+
13+
# grab rhe pixel buffer and dumpy it into a numpy array
14+
buf = fig.canvas.buffer_rgba(0,0)
15+
l, b, w, h = fig.bbox.get_bounds()
16+
X = npy.fromstring(buf, npy.uint8)
17+
X.shape = h,w,4
18+
19+
# now display the array X as an Axes in a new figure
20+
fig2 = figure()
21+
ax2 = fig2.add_subplot(111, frameon=False)
22+
ax2.imshow(X)
23+
fig2.savefig('simple.png')
24+
show()

lib/matplotlib/backends/backend_agg.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,8 +382,8 @@ def draw(self):
382382
"""
383383
if __debug__: verbose.report('FigureCanvasAgg.draw', 'debug-annoying')
384384

385-
renderer = self.get_renderer()
386-
self.figure.draw(renderer)
385+
self.renderer = self.get_renderer()
386+
self.figure.draw(self.renderer)
387387

388388
def get_renderer(self):
389389
l,b,w,h = self.figure.bbox.get_bounds()

lib/matplotlib/image.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,9 @@ def get_extent(self):
264264
if self._extent is not None:
265265
return self._extent
266266
else:
267-
numrows, numcols = self.get_size()
267+
sz = self.get_size()
268+
#print 'sz', sz
269+
numrows, numcols = sz
268270
if self.origin == 'upper':
269271
return (-0.5, numcols-0.5, numrows-0.5, -0.5)
270272
else:

0 commit comments

Comments
 (0)