当我在matplotlib中使用imshow()时,我想知道我点击的一个点的颜色值.有没有办法通过matplotlib中的事件处理程序找到这些信息(与点击的x,y坐标相同)?如果没有,我如何找到这些信息?
具体来说,我正在考虑这样的案例:
imshow(np.random.rand(10,10)*255, interpolation='nearest')
Run Code Online (Sandbox Code Playgroud)
谢谢!--Erin
Pau*_*aul 10
这是一个可以通过的解决方案.它只适用于interpolation = 'nearest'.我仍在寻找一种更清晰的方法来从图像中检索插值(而不是舍入拾取的x,y并从原始数组中选择.)无论如何:
from matplotlib import pyplot as plt
import numpy as np
im = plt.imshow(np.random.rand(10,10)*255, interpolation='nearest')
fig = plt.gcf()
ax = plt.gca()
class EventHandler:
def __init__(self):
fig.canvas.mpl_connect('button_press_event', self.onpress)
def onpress(self, event):
if event.inaxes!=ax:
return
xi, yi = (int(round(n)) for n in (event.xdata, event.ydata))
value = im.get_array()[xi,yi]
color = im.cmap(im.norm(value))
print xi,yi,value,color
handler = EventHandler()
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4798 次 |
| 最近记录: |