Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions lib/matplotlib/offsetbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,8 @@ def __init__(self, aux_transform):
self.ref_offset_transform = mtransforms.Affine2D()
self.ref_offset_transform.clear()

self.dpi_transform = mtransforms.Affine2D()

def add_artist(self, a):
'Add any :class:`~matplotlib.artist.Artist` to the container box'
self._children.append(a)
Expand All @@ -911,6 +913,7 @@ def get_transform(self):
"""
return self.aux_transform + \
self.ref_offset_transform + \
self.dpi_transform + \
self.offset_transform

def set_transform(self, t):
Expand Down Expand Up @@ -947,10 +950,12 @@ def get_window_extent(self, renderer):

def get_extent(self, renderer):

# clear the offset transforms
_off = self.offset_transform.to_values() # to be restored later
# clear the transforms, restored later
_off = self.offset_transform.to_values()
_dpi = self.dpi_transform.to_values()
self.ref_offset_transform.clear()
self.offset_transform.clear()
self.dpi_transform.clear()

# calculate the extent
bboxes = [c.get_window_extent(renderer) for c in self._children]
Expand All @@ -959,17 +964,26 @@ def get_extent(self, renderer):
# adjust ref_offset_tansform
self.ref_offset_transform.translate(-ub.x0, -ub.y0)

# restor offset transform
# restore offset transform
mtx = self.offset_transform.matrix_from_values(*_off)
self.offset_transform.set_matrix(mtx)

return ub.width, ub.height, 0., 0.
# restore dpi transform
mtx = self.dpi_transform.matrix_from_values(*_dpi)
self.dpi_transform.set_matrix(mtx)

dpi_cor = renderer.points_to_pixels(1.)
return ub.width*dpi_cor, ub.height*dpi_cor, 0., 0.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor nit: need spaces around * for pep8.

@has2k1 has2k1 Oct 27, 2016 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think pep8 is fine with that for arithmetic operators, it calls for consistency, readability/good judgment. Either way, when I make a revision to the PR that line will not be there(for a yet unknown reason).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pep8 is fine with that. Both the document and the tool.


def draw(self, renderer):
"""
Draw the children
"""

dpi_cor = renderer.points_to_pixels(1.)
self.dpi_transform.clear()
self.dpi_transform.scale(dpi_cor, dpi_cor)

for c in self._children:
c.draw(renderer)

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.