2017-03-22 22 views
0

我创建了一个包含多个图的GUI。在一些我有一维直方图,和垂直线,改变位置,当我点击的情节。正如这里的例子是分配给一个情节线:使用图像绘图时点击时的操作

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

而且回调函数我只是改变了“扩展数据”和“YDATA”和重新绘制的线。比较简单。

我的问题是,为什么我不能使用'imagesc'函数为一个2D直方图(我想是“heatmap”)成像的情节做这件事?在绘制点击移动线条之前,我很好,但是一旦我使用imagesc绘图,没有任何事情发生,没有错误信息或任何东西。实际上,回调函数根本不运行。

有没有更好的方式来绘制一个颜色图例的2D直方图,这将允许我像使用一维直方图一样使用回调函数?

回答

1

的问题是,你必然回调到axesButtonDownFcnimagesc对象掩盖了axes,并拥有自己的ButtonDownFcn。您可以回调分配到图像的ButtonDownFcn以及

him = imagesc(data); 
set(him, 'ButtonDownFcn', @callback) 

或者你可以指示image对象不按下按钮转动HitTest属性'off'

him = imagesc(data); 
set(him, 'HitTest', 'off') 
+0

这是完全响应问题。非常感谢! – Devin