简体   繁体   中英

Matplotlib Show Display Coordinates

Given a figure like this:

import matplotlib.pyplot as plt
%matplotlib inline
f, ax = plt.subplots(1,2)
plt.show()

Is it possible to display (via a grid, preferably, or spines) the display coordinates of a figure (not the axis or data coordinates)?

Thanks in advance!

The following code is a snippet from the event handling chapter of matplotlib documentation. Notice that every time you click on the plot there are several values that are printed, including the event coordinates (display coordinates) and plot coordinates.

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))

def onclick(event):
    print( 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata))

cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()

a quick test results in:

button=1, x=127, y=98, xdata=0.852823, ydata=0.218149
button=1, x=198, y=228, xdata=2.141129, ydata=0.524111
button=1, x=116, y=382, xdata=0.653226, ydata=0.886559
button=1, x=209, y=371, xdata=2.340726, ydata=0.860669
button=1, x=230, y=257, xdata=2.721774, ydata=0.592364

EDIT: You've mentioned a plt.text which means you might want to actually display the coordinates on screen. For this you might want to build an mpl widget or just create instances of plt.text on the click event (haven't tested it).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM