@@ -1411,7 +1411,7 @@ def __call__(self, renderer):
14111411 elif isinstance (self ._artist , Transform ):
14121412 x , y = self ._artist .transform (self ._ref_coord )
14131413 else :
1414- raise RuntimeError ( "unknown type" )
1414+ _api . check_isinstance (( Artist , BboxBase , Transform ), artist = self . _artist )
14151415
14161416 sc = self ._get_scale (renderer )
14171417 tr = Affine2D ().scale (sc ).translate (x , y )
@@ -1458,7 +1458,9 @@ def _get_xy_transform(self, renderer, s):
14581458 elif isinstance (tr , Transform ):
14591459 return tr
14601460 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__ } ." )
14621464 elif isinstance (s , Artist ):
14631465 bbox = s .get_window_extent (renderer )
14641466 return BboxTransformTo (bbox )
@@ -1467,7 +1469,9 @@ def _get_xy_transform(self, renderer, s):
14671469 elif isinstance (s , Transform ):
14681470 return s
14691471 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__ } ." )
14711475
14721476 if s == 'data' :
14731477 return self .axes .transData
@@ -1479,7 +1483,7 @@ def _get_xy_transform(self, renderer, s):
14791483
14801484 s_ = s .split ()
14811485 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" )
14831487
14841488 bbox0 , xy0 = None , None
14851489
@@ -1524,7 +1528,7 @@ def _get_xy_transform(self, renderer, s):
15241528 return tr .translate (ref_x , ref_y )
15251529
15261530 else :
1527- raise ValueError (f"{ s !r} is not a recognized coordinate" )
1531+ raise ValueError (f"{ s !r} is not a valid coordinate" )
15281532
15291533 def _get_ref_xy (self , renderer ):
15301534 """
@@ -2010,7 +2014,7 @@ def get_window_extent(self, renderer=None):
20102014 if self ._renderer is None :
20112015 self ._renderer = self .figure ._get_renderer ()
20122016 if self ._renderer is None :
2013- raise RuntimeError ('Cannot get window extent w/o renderer' )
2017+ raise RuntimeError ('Cannot get window extent without renderer' )
20142018
20152019 self .update_positions (self ._renderer )
20162020
0 commit comments