576*_*76i 5 python matplotlib mouseevent jupyter-notebook
使用 Python 3.6+、Jupyter 笔记本和 matplotlib,我想了解如何通过将鼠标移到图像上和/或单击位置来获取图像的 x,y 位置
我使用任何图像,例如尺寸为 966 x 525 像素的 png。
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
fig = plt.figure(figsize=(20,30))
img=mpimg.imread('ausgabe.png')
imgplot = plt.imshow(img)
plt.show();
Run Code Online (Sandbox Code Playgroud)
stackoverflow 上的许多建议解决方案都涉及将事件连接到 matplotlib,例如
fig.canvas.mpl_connect('button_press_event', onclick)
Run Code Online (Sandbox Code Playgroud)
但在 Jupyter 中却没有反应。相反,单击图像有时会将其放大。
在 Jupyter 中显示 png 以便我可以收集(=打印)点击位置或使用收集到的信息重新运行单元格的好方法是什么?
您可以使用本机 Tk 后端,并且可以通过这种方式检索鼠标单击位置。例如
%matplotlib tk
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
fig = plt.figure(figsize=(20,30))
img=mpimg.imread('ausgabe.png')
def onclick(event):
ix, iy = event.xdata, event.ydata
print(ix, iy)
cid = fig.canvas.mpl_connect('button_press_event', onclick)
imgplot = plt.imshow(img)
plt.show()
Run Code Online (Sandbox Code Playgroud)
将弹出一个单独的 tk 窗口,当您单击时,x,y 位置将打印在笔记本中。如果这不起作用,您可能需要使用%matplotlib qt5甚至%matplotlib qt4
| 归档时间: |
|
| 查看次数: |
13795 次 |
| 最近记录: |