@@ -1411,7 +1411,7 @@ def __call__(self, renderer):
1411
1411
elif isinstance (self ._artist , Transform ):
1412
1412
x , y = self ._artist .transform (self ._ref_coord )
1413
1413
else :
1414
- raise RuntimeError ( "unknown type" )
1414
+ _api . check_isinstance (( Artist , BboxBase , Transform ), artist = self . _artist )
1415
1415
1416
1416
sc = self ._get_scale (renderer )
1417
1417
tr = Affine2D ().scale (sc ).translate (x , y )
@@ -1458,7 +1458,9 @@ def _get_xy_transform(self, renderer, s):
1458
1458
elif isinstance (tr , Transform ):
1459
1459
return tr
1460
1460
else :
1461
- raise RuntimeError ("Unknown return type" )
1461
+ raise RuntimeError (
1462
+ f"Unexpected return type from callable: "
1463
+ f"expected BboxBase or Transform, but got { type (tr ).__name__ } ." )
1462
1464
elif isinstance (s , Artist ):
1463
1465
bbox = s .get_window_extent (renderer )
1464
1466
return BboxTransformTo (bbox )
@@ -1467,7 +1469,9 @@ def _get_xy_transform(self, renderer, s):
1467
1469
elif isinstance (s , Transform ):
1468
1470
return s
1469
1471
elif not isinstance (s , str ):
1470
- raise RuntimeError (f"Unknown coordinate type: { s !r} " )
1472
+ raise RuntimeError (
1473
+ f"Unexpected type for 'xycoords'. This must be one of str, (str, str), "
1474
+ f"Artist, Transform, or callable, but got { type (s ).__name__ } ." )
1471
1475
1472
1476
if s == 'data' :
1473
1477
return self .axes .transData
@@ -1479,7 +1483,7 @@ def _get_xy_transform(self, renderer, s):
1479
1483
1480
1484
s_ = s .split ()
1481
1485
if len (s_ ) != 2 :
1482
- raise ValueError (f"{ s !r} is not a recognized coordinate" )
1486
+ raise ValueError (f"{ s !r} is not a valid coordinate" )
1483
1487
1484
1488
bbox0 , xy0 = None , None
1485
1489
@@ -1524,7 +1528,7 @@ def _get_xy_transform(self, renderer, s):
1524
1528
return tr .translate (ref_x , ref_y )
1525
1529
1526
1530
else :
1527
- raise ValueError (f"{ s !r} is not a recognized coordinate" )
1531
+ raise ValueError (f"{ s !r} is not a valid coordinate" )
1528
1532
1529
1533
def _get_ref_xy (self , renderer ):
1530
1534
"""
@@ -2010,7 +2014,7 @@ def get_window_extent(self, renderer=None):
2010
2014
if self ._renderer is None :
2011
2015
self ._renderer = self .figure ._get_renderer ()
2012
2016
if self ._renderer is None :
2013
- raise RuntimeError ('Cannot get window extent w/o renderer' )
2017
+ raise RuntimeError ('Cannot get window extent without renderer' )
2014
2018
2015
2019
self .update_positions (self ._renderer )
2016
2020
0 commit comments