Python 用鼠标单击返回二维绘图的x、y值

Python 用鼠标单击返回二维绘图的x、y值,python,arrays,click,2d,mouse,Python,Arrays,Click,2d,Mouse,我正在绘制一个简单的图像,想得到x,y值,在这里我用鼠标点击 从PIL导入图像 将numpy作为np导入 将matplotlib.pyplot作为plt导入 image=image.open'points.jpg' 数据=np.arrayimage plt.imshowdata 节目 因此,我可以将鼠标导航到每个点,单击并在最后获得一个包含4个x,y值的列表。首先,对于要单击的图像,“png”通常是比“jpg”更合适的格式。用于“jpg”颜色的压缩可以涂抹颜色 是一个支持在绘图上单击或悬停的小程

我正在绘制一个简单的图像,想得到x,y值,在这里我用鼠标点击

从PIL导入图像 将numpy作为np导入 将matplotlib.pyplot作为plt导入 image=image.open'points.jpg' 数据=np.arrayimage plt.imshowdata 节目
因此,我可以将鼠标导航到每个点,单击并在最后获得一个包含4个x,y值的列表。

首先,对于要单击的图像,“png”通常是比“jpg”更合适的格式。用于“jpg”颜色的压缩可以涂抹颜色

是一个支持在绘图上单击或悬停的小程序包。它显示带有坐标的注释工具提示。在应用程序中,显示注释工具提示似乎很有用。如果没有,则可以使用sel.annotation.set_visibleFalse抑制该行为,并仍然接收带有坐标的事件

坐标有两种形式:x和y使用轴的坐标系,或者索引i,j表示像素。使用imshow的extent=参数,您可以灵活地设置所需的范围默认x和y从0到图像的宽度和高度。每个像素中心的x、y为整数值。因此,您可以将i,j索引或x,y附加到列表中

要进行实验的一些代码:

从PIL导入图像 将numpy作为np导入 将matplotlib.pyplot作为plt导入 导入MPLS游标 image=image.open'points.png' 数据=np.arrayimage img=plt.imshowdata 点数=[] cursor=mplcursors.cursorimg,hover=False @cursor.connectadd def光标_单击选择: sel.annotation.set_visibleFalse sel.annotation.set_文本 f'单击\nx:{sel.target[0]:.2f}y:{sel.target[1]:.2f}\n索引:{sel.target.index}' points.appendsel.target.index 打印当前点列表:,点 节目 打印所选点:,点