我创建了一个包含多个图表的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直方图一样使用回调函数?
答案 0 :(得分:1)
问题在于,您已将回调绑定到ButtonDownFcn
的{{1}},而axes
对象会掩盖imagesc
并且它拥有axes
。您也可以将回调分配给图片' s ButtonDownFcn
以及
ButtonDownFcn
或者,您可以通过将him = imagesc(data);
set(him, 'ButtonDownFcn', @callback)
属性设置为image
HitTest
对象无法按下按钮
'off'