Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Open
Description
Summary
Hey,
while investigating possibilities forsvg
exports withEOmaps I realized that theFigureCanvasSVG
class does not expose the renderer via a.get_renderer()
method but initializes the renderer in.pring_svg()
.
matplotlib/lib/matplotlib/backends/backend_svg.py
Lines 1330 to 1338 in2f778fd
dpi=self.figure.dpi | |
self.figure.dpi=72 | |
width,height=self.figure.get_size_inches() | |
w,h=width*72,height*72 | |
renderer=MixedModeRenderer( | |
self.figure,width,height,dpi, | |
RendererSVG(w,h,fh,image_dpi=dpi,metadata=metadata), | |
bbox_inches_restore=bbox_inches_restore) | |
self.figure.draw(renderer) |
Is this intentional or is this a API inconsistency that should be fixed?
- The same is also true for the
pdf
backend
Proposed fix
Implement.get_renderer()
similar to theagg
backend:
matplotlib/lib/matplotlib/backends/backend_agg.py
Lines 406 to 413 in2f778fd
defget_renderer(self): | |
w,h=self.figure.bbox.size | |
key=w,h,self.figure.dpi | |
reuse_renderer= (self._lastKey==key) | |
ifnotreuse_renderer: | |
self.renderer=RendererAgg(w,h,self.figure.dpi) | |
self._lastKey=key | |
returnself.renderer |