@@ -1410,7 +1410,7 @@ def __call__(self, renderer):
14101410 elif isinstance (self ._artist , Transform ):
14111411 x , y = self ._artist .transform (self ._ref_coord )
14121412 else :
1413- raise RuntimeError ( "unknown type" )
1413+ _api . check_isinstance (( Artist , BboxBase , Transform ), artist = self . _artist )
14141414
14151415 sc = self ._get_scale (renderer )
14161416 tr = Affine2D ().scale (sc ).translate (x , y )
@@ -1457,7 +1457,9 @@ def _get_xy_transform(self, renderer, s):
14571457 elif isinstance (tr , Transform ):
14581458 return tr
14591459 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__ } ." )
14611463 elif isinstance (s , Artist ):
14621464 bbox = s .get_window_extent (renderer )
14631465 return BboxTransformTo (bbox )
@@ -1466,7 +1468,9 @@ def _get_xy_transform(self, renderer, s):
14661468 elif isinstance (s , Transform ):
14671469 return s
14681470 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__ } ." )
14701474
14711475 if s == 'data' :
14721476 return self .axes .transData
@@ -1478,7 +1482,7 @@ def _get_xy_transform(self, renderer, s):
14781482
14791483 s_ = s .split ()
14801484 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" )
14821486
14831487 bbox0 , xy0 = None , None
14841488
@@ -1523,7 +1527,7 @@ def _get_xy_transform(self, renderer, s):
15231527 return tr .translate (ref_x , ref_y )
15241528
15251529 else :
1526- raise ValueError (f"{ s !r} is not a recognized coordinate" )
1530+ raise ValueError (f"{ s !r} is not a valid coordinate" )
15271531
15281532 def _get_ref_xy (self , renderer ):
15291533 """
@@ -2009,7 +2013,7 @@ def get_window_extent(self, renderer=None):
20092013 if self ._renderer is None :
20102014 self ._renderer = self .figure ._get_renderer ()
20112015 if self ._renderer is None :
2012- raise RuntimeError ('Cannot get window extent w/o renderer' )
2016+ raise RuntimeError ('Cannot get window extent without renderer' )
20132017
20142018 self .update_positions (self ._renderer )
20152019
0 commit comments