Skip to content

Commit ebb2e63

Browse files
committed
Handle plots with no spines or transformations with non-standard spines
1 parent ef683df commit ebb2e63

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

lib/matplotlib/axis.py

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,9 +1732,13 @@ def _update_label_position(self, bboxes, bboxes2):
17321732
return
17331733
x, y = self.label.get_position()
17341734
if self.label_position == 'bottom':
1735-
spine = self.axes.spines['bottom']
1736-
spinebbox = spine.get_transform().transform_path(
1737-
spine.get_path()).get_extents()
1735+
try:
1736+
spine = self.axes.spines['bottom']
1737+
spinebbox = spine.get_transform().transform_path(
1738+
spine.get_path()).get_extents()
1739+
except KeyError:
1740+
# use axes if spine doesn't exist
1741+
spinebbox = self.axes.bbox
17381742
bbox = mtransforms.Bbox.union(bboxes + [spinebbox])
17391743
bottom = bbox.y0
17401744

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

17451749
else:
1746-
spine = self.axes.spines['top']
1747-
spinebbox = spine.get_transform().transform_path(
1748-
spine.get_path()).get_extents()
1750+
try:
1751+
spine = self.axes.spines['top']
1752+
spinebbox = spine.get_transform().transform_path(
1753+
spine.get_path()).get_extents()
1754+
except KeyError:
1755+
# use axes if spine doesn't exist
1756+
spinebbox = self.axes.bbox
17491757
bbox = mtransforms.Bbox.union(bboxes2 + [spinebbox])
17501758
top = bbox.y1
17511759

@@ -2040,9 +2048,13 @@ def _update_label_position(self, bboxes, bboxes2):
20402048
return
20412049
x, y = self.label.get_position()
20422050
if self.label_position == 'left':
2043-
spine = self.axes.spines['left']
2044-
spinebbox = spine.get_transform().transform_path(
2045-
spine.get_path()).get_extents()
2051+
try:
2052+
spine = self.axes.spines['left']
2053+
spinebbox = spine.get_transform().transform_path(
2054+
spine.get_path()).get_extents()
2055+
except KeyError:
2056+
# use axes if spine doesn't exist
2057+
spinebbox = self.axes.bbox
20462058
bbox = mtransforms.Bbox.union(bboxes + [spinebbox])
20472059
left = bbox.x0
20482060

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

20532065
else:
2054-
spine = self.axes.spines['right']
2055-
spinebbox = spine.get_transform().transform_path(
2056-
spine.get_path()).get_extents()
2066+
try:
2067+
spine = self.axes.spines['right']
2068+
spinebbox = spine.get_transform().transform_path(
2069+
spine.get_path()).get_extents()
2070+
except KeyError:
2071+
# use axes if spine doesn't exist
2072+
spinebbox = self.axes.bbox
20572073
bbox = mtransforms.Bbox.union(bboxes2 + [spinebbox])
20582074
right = bbox.x1
20592075

0 commit comments

Comments
 (0)