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