Python Jupyter笔记本内联图像中的光标位置和像素值

Python Jupyter笔记本内联图像中的光标位置和像素值,python,matplotlib,Python,Matplotlib,我正在使用Python2.7.x和Jupyter笔记本、matplotlib以及带有内联标志的%pylab后端 %pylab内联 打印活动单元格下方的图像。我希望能够将光标移动到图像上,并了解其位置和像素值。例如: (x,y,val)=(123285230) 但我对这个例子的任何细节都不挑剔 后端将打印输出显示为png图像。也许可以为Jupyter笔记本编写一些JavaScript,以获得单元格输出中鼠标在图像上的颜色和像素 但是,只使用%matplotlib笔记本后端可能会容易得多,它可以在将

我正在使用Python2.7.x和Jupyter笔记本、matplotlib以及带有内联标志的%pylab后端
%pylab内联
打印活动单元格下方的图像。我希望能够将光标移动到图像上,并了解其位置和像素值。例如: (x,y,val)=(123285230)
但我对这个例子的任何细节都不挑剔

后端将打印输出显示为png图像。也许可以为Jupyter笔记本编写一些JavaScript,以获得单元格输出中鼠标在图像上的颜色和像素

但是,只使用
%matplotlib笔记本
后端可能会容易得多,它可以在将matplotlib图形打印到输出时使其保持活动状态,因此通常的内置鼠标悬停功能随时可用


请注意图像右下角的选取器,它显示
x
y
和当前像素的值。

要扩展重要度FBeingernest的答案,您可以使用在单击时提供回调并显示回调的输出。如果需要,可以在不同的单元格中分解代码

%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
import ipywidgets as wdg  # Using the ipython notebook widgets

# Create a random image
a = np.random.poisson(size=(12,15))
fig = plt.figure()
plt.imshow(a)

# Create and display textarea widget
txt = wdg.Textarea(
    value='',
    placeholder='',
    description='event:',
    disabled=False
)
display(txt)

# Define a callback function that will update the textarea
def onclick(event):
    txt.value = str(event)  # Dynamically update the text box above

# Create an hard reference to the callback not to be cleared by the garbage collector
ka = fig.canvas.mpl_connect('button_press_event', onclick)

我想你应该问一个新问题。在最初的问题中,您想知道如何在Jupyter笔记本的鼠标上获取坐标/值。这是一个有效的问题,您收到了一个答案(可能不是唯一有效的答案)。那么,你完全可以选择是否接受这个答案;如果您对使用笔记本后端感到满意,您可以接受它,但如果您认为在png图像上使用JavaScript的解决方案会更好,请不要接受它,但在问题中明确说明您正在寻找这样的解决方案。另一个完全不相关的问题是如何让笔记本后端工作。这与坐标无关,需要完全不同的问题描述。因此,将该部分转移到一个新问题是有意义的。我如何关闭它,以便在下一个代码单元中,我没有交互式绘图。我只想将其用于1个单元格。请为下一个单元格重新启用内联模式:
%matplotlib inline