# matplotlib__matplotlib-22835 # Loki Mode Multi-Agent Patch # Attempts: 1 Based on the architect's analysis and the issue description, I can generate the patch. The issue is clear: `format_cursor_data` calls `self.norm.inverse()` which raises `ValueError` for `BoundaryNorm`. The fix is to wrap this in a try-except block. ``` --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -1279,9 +1279,14 @@ class Artist: # Midpoints of neighboring color intervals. _, g_sig_digits = cbook._g_sig_digits_of_float( xd - self.norm.vmin, self.norm.vmax - self.norm.vmin) - neighbors = self.norm.inverse( - (int(self.norm(data) * n) + np.array([0, 1])) / n) - g_sig_digits = max(g_sig_digits, cbook._g_sig_digits(*neighbors)) + try: + neighbors = self.norm.inverse( + (int(self.norm(data) * n) + np.array([0, 1])) / n) + g_sig_digits = max(g_sig_digits, cbook._g_sig_digits(*neighbors)) + except ValueError: + # Norm.inverse is not always defined, e.g., for BoundaryNorm. + # In that case, we fall back to the default of 3 digits. + pass return "[{:-#.{}g}]".format(data, g_sig_digits) return "[{}]".format(cursor_data) ```