我想创建一个绘图,其中包含对绘制的每个项目的侦听器。我真正想做的是创建一个 3D 箭袋图,每当我点击箭头的头部时,我想根据点击的箭头的 ID 创建另一个图。
这在 Matlab 中可能吗?
我愿意在其他编程语言中探索其他选项(易于实现)。
我想创建一个绘图,其中包含对绘制的每个项目的侦听器。我真正想做的是创建一个 3D 箭袋图,每当我点击箭头的头部时,我想根据点击的箭头的 ID 创建另一个图。
这在 Matlab 中可能吗?
我愿意在其他编程语言中探索其他选项(易于实现)。
图形句柄对象具有可用于此类事情的回调。
ButtonDownFcn — 在光标位于对象上方或对象周围 5 像素边框内单击鼠标左键时执行。
您还可以设置'UserData'
每个图形句柄对象的属性,在您的情况下给它一个 ID。
结合这两个概念来创建您想要的功能:
h = quiver(...); %# generate the graphics handle item;
set(h,'UserData',1,'ButtonDownFcn',@myCallback);
function myCallback(src,eventdata)
clicked_item_id = get(src,'UserData'); %# get the ID of the clicked item
figure; plot(data(ID)); %# obviously won't work as is, just for illustration
end