使用matplotlib进行交互式图像打印
我正在从Matlab过渡到NumPy/matplotlib。matplotlib中似乎缺少的一个功能是交互式打印。是有用的,但对我来说,一个常见的用例是: 我使用使用matplotlib进行交互式图像打印,matplotlib,Matplotlib,我正在从Matlab过渡到NumPy/matplotlib。matplotlib中似乎缺少的一个功能是交互式打印。是有用的,但对我来说,一个常见的用例是: 我使用imshow()(Matlab和matplotlib在这方面都做得很好)绘制灰度图像。在接下来的图中,我想精确定位某个像素(它的x和y坐标)并得到它的值 在Matlab图中很容易做到这一点,但是在matplotlib中有没有办法做到这一点 看起来很接近,但似乎不适用于图像。自定义事件处理程序是您需要的。这并不难,但也不是“它只是工作”
imshow()
(Matlab和matplotlib在这方面都做得很好)绘制灰度图像。在接下来的图中,我想精确定位某个像素(它的x和y坐标)并得到它的值
在Matlab图中很容易做到这一点,但是在matplotlib中有没有办法做到这一点
看起来很接近,但似乎不适用于图像。自定义事件处理程序是您需要的。这并不难,但也不是“它只是工作”
看起来很接近你的目标。如果您需要任何澄清,我很乐意添加更多信息。我相信您已经做到了。稍微(!)修改后,我编写了以下代码,在绘图区域内单击后为您提供x和y坐标
from pylab import *
import sys
from numpy import *
from matplotlib import pyplot
class Test:
def __init__(self, x, y):
self.x = x
self.y = y
def __call__(self,event):
if event.inaxes:
print("Inside drawing area!")
print("x: ", event.x)
print("y: ", event.y)
else:
print("Outside drawing area!")
if __name__ == '__main__':
x = range(10)
y = range(10)
fig = pyplot.figure("Test Interactive")
pyplot.scatter(x,y)
test = Test(x,y)
connect('button_press_event',test)
pyplot.show()
此外,这应该比烹饪书中提供的更容易理解交互式绘图的基础知识
注:该程序将提供精确的像素位置。该位置的值应给出相应像素的灰度值
以下内容也可能有所帮助:
这看起来很有希望。我试试看,然后告诉你。我搜索时没有找到那个问题。出于我的目的,我不需要插值,因此从图像数组中检索值对我来说是最好的方法。我很欣赏matplotlib的可扩展性,但是如果有像这样的内置功能就太好了。很抱歉耽搁了。是的,你对这个问题的回答有一个非常漂亮的事件处理程序。它可以很好地满足我的需要,尽管在鼠标悬停而不是点击时在图形的状态栏中显示信息会更酷。如果我以后有时间/兴趣,我会看看我能做些什么。