使用 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】:

问题是您已将回调绑定到axesButtonDownFcnimagesc 对象掩盖了axes 并拥有自己的ButtonDownFcn。您也可以将回调分配给图像的ButtonDownFcn

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

或者您可以通过将HitTest 属性设置为'off' 来指示image 对象不响应按钮按下

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

【讨论】:

以上是关于使用 imagesc 绘图时的点击操作的主要内容,如果未能解决你的问题,请参考以下文章

matlab中imagesc函数得到图像,怎么还原?

Rails link_to image_tag - 使用 jQuery 获取点击时的 href 值

错误:不支持的操作:使用 image_picker 时的 _Namespace

Matlab-融合图片与绘图

Matlab中imagesc用法

Octave 仅打印最后绘制的线段