使用 imagesc 绘图时的点击操作
Posted
技术标签:
【中文标题】使用 imagesc 绘图时的点击操作【英文标题】:Action on click when plotting with imagesc 【发布时间】:2017-03-22 19:55:02 【问题描述】:我创建了一个带有多个绘图的 GUI。在一些我有一维直方图,当我点击图时,垂直线会改变位置。就像这里的一个例子是一条分配给绘图的线:
lines.L1 = line([0.01 0.01],[0 max(e1)],'Color','red');
set(lines.L1,'parent',handles.plot_e1);
在回调函数中,我只需更改“XData”和“YData”并重新绘制线。比较简单。
我的问题是,为什么我不能对使用“imagesc”函数对二维直方图(我想是“热图”)进行成像的绘图执行此操作?在绘制我的点击移动线之前工作得很好,但是一旦我使用 imagesc 绘制什么都没有发生,没有错误消息或任何东西。实际上回调函数根本不运行。
有没有更好的方法来绘制带有颜色图例的 2D 直方图,让我可以像使用 1D 直方图一样使用回调函数?
【问题讨论】:
【参考方案1】:问题是您已将回调绑定到axes
的ButtonDownFcn
和imagesc
对象掩盖了axes
并拥有自己的ButtonDownFcn
。您也可以将回调分配给图像的ButtonDownFcn
him = imagesc(data);
set(him, 'ButtonDownFcn', @callback)
或者您可以通过将HitTest
属性设置为'off'
来指示image
对象不响应按钮按下
him = imagesc(data);
set(him, 'HitTest', 'off')
【讨论】:
以上是关于使用 imagesc 绘图时的点击操作的主要内容,如果未能解决你的问题,请参考以下文章
Rails link_to image_tag - 使用 jQuery 获取点击时的 href 值