Bug summary
The mouse coords reported for 3D axes are meaningless (they correspond to some arbitrarily chosen depth). In fact, I do not believe there's any canonical way to choose the values displayed. See discussion starting at #22624 (comment).
Code for reproduction
# xyz values printed when dragging the mouse across window (default 3d view) horizontally,
# along the middle y position:
from pylab import *
from matplotlib.backend_bases import LocationEvent
rcdefaults(); rcParams["axes.unicode_minus"] = False # use ascii minus
fig = figure()
ax = fig.add_subplot(projection="3d")
fig.canvas.draw()
xyzs = []
screen_ry = .5
# drag mouse across window horizontally, along the middle y position
for screen_rx in np.linspace(0, 1, 1001):
screen_xy = fig.transFigure.transform((screen_rx, screen_ry))
pseudo_xy = ax.transData.inverted().transform(screen_xy)
ev = LocationEvent("", fig.canvas, *screen_xy)
ev.xdata, ev.ydata = pseudo_xy
if any([axis.pane.contains(ev)[0] for axis in ax._axis_map.values()]):
s = ax.format_coord(*pseudo_xy) # formatted string
xyzs.append([float(part.split("=")[1]) for part in s.split(",")]) # displayed xyz
else: # out of Axes
xyzs.append((np.nan, np.nan, np.nan))
xyzs = array(xyzs)
close(fig)
plot(xyzs[:, 0], label="x")
plot(xyzs[:, 1], label="y")
plot(xyzs[:, 2], label="z")
legend()
show()
Actual outcome

Expected outcome
Don't try to display meaningless values.
Additional information
No response
Operating system
arch linux
Matplotlib Version
3.6.0.dev1926+gf670fe7879
Matplotlib Backend
mplcairo
Python version
3.10
Jupyter version
ENOSUCHLIB
Installation
git checkout
Bug summary
The mouse coords reported for 3D axes are meaningless (they correspond to some arbitrarily chosen depth). In fact, I do not believe there's any canonical way to choose the values displayed. See discussion starting at #22624 (comment).
Code for reproduction
Actual outcome
Expected outcome
Don't try to display meaningless values.
Additional information
No response
Operating system
arch linux
Matplotlib Version
3.6.0.dev1926+gf670fe7879
Matplotlib Backend
mplcairo
Python version
3.10
Jupyter version
ENOSUCHLIB
Installation
git checkout