10000 Axis Labels with offset Spines by cimarronm · Pull Request #4134 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content

Axis Labels with offset Spines #4134

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Mar 12, 2015
Prev Previous commit
Next Next commit
Handle plots with no spines or transformations with non-standard spines
  • Loading branch information
cimarronm committed Mar 6, 2015
commit ebb2e63bc22eb067dbe840f7e128fc3f29e07aac
40 changes: 28 additions & 12 deletions lib/matplotlib/axis.py
Original file line number Diff line number Diff line change
Expand Up @@ -1732,9 +1732,13 @@ def _update_label_position(self, bboxes, bboxes2):
return
x, y = self.label.get_position()
if self.label_position == 'bottom':
spine = self.axes.spines['bottom']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
try:
spine = self.axes.spines['bottom']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
except KeyError:
# use axes if spine doesn't exist
spinebbox = self.axes.bbox
bbox = mtransforms.Bbox.union(bboxes + [spinebbox])
bottom = bbox.y0

Expand All @@ -1743,9 +1747,13 @@ def _update_label_position(self, bboxes, bboxes2):
)

else:
spine = self.axes.spines['top']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
try:
spine = self.axes.spines['top']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
except KeyError:
# use axes if spine doesn't exist
spinebbox = self.axes.bbox
bbox = mtransforms.Bbox.union(bboxes2 + [spinebbox])
top = bbox.y1

Expand Down Expand Up @@ -2040,9 +2048,13 @@ def _update_label_position(self, bboxes, bboxes2):
return
x, y = self.label.get_position()
if self.label_position == 'left':
spine = self.axes.spines['left']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
try:
spine = self.axes.spines['left']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
except KeyError:
# use axes if spine doesn't exist
spinebbox = self.axes.bbox
bbox = mtransforms.Bbox.union(bboxes + [spinebbox])
left = bbox.x0

Expand All @@ -2051,9 +2063,13 @@ def _update_label_position(self, bboxes, bboxes2):
)

else:
spine = self.axes.spines['right']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
try:
spine = self.axes.spines['right']
spinebbox = spine.get_transform().transform_path(
spine.get_path()).get_extents()
except KeyError:
# use axes if spine doesn't exist
spinebbox = self.axes.bbox
bbox = mtransforms.Bbox.union(bboxes2 + [spinebbox])
right = bbox.x1

Expand Down
0