使用imagesc绘制时单击时的操作

时间:2017-03-22 19:55:02

标签: matlab matlab-figure matlab-guide

我创建了一个包含多个图表的GUI。在一些我有一维直方图,和垂直线,当我点击图上改变位置。就像这里的一个例子是分配给情节的线:

lines.L1 = line([0.01 0.01],[0 max(e1)],'Color','red');
set(lines.L1,'parent',handles.plot_e1);

在回调函数中,我只需更改' XData'和' YData'并重新绘制线条。相对简单。

我的问题是,为什么我不能使用' imagesc'对我绘制2D直方图("热图"我想)的情节进行此操作。功能?在绘制我的点击移动线条之前工作正常,但是一旦我使用imagesc绘图没有任何反应,没有错误消息或任何东西。事实上,回调函数根本没有运行。

有没有更好的方法来绘制带有颜色图例的2D直方图,这样我就可以像对待1D直方图一样使用回调函数?

1 个答案:

答案 0 :(得分:1)

问题在于,您已将回调绑定到ButtonDownFcn的{​​{1}},而axes对象会掩盖imagesc并且它拥有axes 。您也可以将回调分配给图片' s ButtonDownFcn以及

ButtonDownFcn

或者,您可以通过将him = imagesc(data); set(him, 'ButtonDownFcn', @callback) 属性设置为image

来指示HitTest对象无法按下按钮
'off'