""" ================================== Modifying the coordinate formatter ================================== Modify the coordinate formatter to report the image "z" value of the nearest pixel given x and y. This functionality is built in by default; this example just showcases how to customize the `~.axes.Axes.format_coord` function. """ import matplotlib.pyplot as plt import numpy as np # Fixing random state for reproducibility np.random.seed(19680801) X = 10*np.random.rand(5, 3) fig, ax = plt.subplots() ax.imshow(X) def format_coord(x, y): col = round(x) row = round(y) nrows, ncols = X.shape if 0 <= col < ncols and 0 <= row < nrows: z = X[row, col] return f'x={x:1.4f}, y={y:1.4f}, z={z:1.4f}' else: return f'x={x:1.4f}, y={y:1.4f}' ax.format_coord = format_coord plt.show() # %% # # .. admonition:: References # # The use of the following functions, methods, classes and modules is shown # in this example: # # - `matplotlib.axes.Axes.format_coord` # - `matplotlib.axes.Axes.imshow`