在matlab plot(treeplot)中创建鼠标悬停/工具提示文本

时间:2015-04-14 21:15:04

标签: matlab plot label tooltip mouseover

我创建了一个树图来代表代谢网络反应。 Endresult应该是Hasse图。 现在我已经完成了绘图工作,节点也标有文本。这个文本是它背后的反应的索引。 当你将鼠标悬停在它上面时,这些反应名称较长,我需要显示它们。就像一个工具提示。 我尝试了uicontrols,get()等等。

问题是,treelayout只返回轴坐标(地图坐标?)但是对于uicontrol我需要4个像素距离。我尝试了map2pix,axes2pix和CData,但无法将其计算出来。

也许你们中的一些人知道如何在情节中创建带有工具提示的文本框?

这里有一些代码可以解决:

treeplot(nodes);
[x,y] = treelayout(nodes);
x = x'
y = y'
text(x(:,1), y(:,1), lables,     'VerticalAlignment','bottom','HorizontalAlignment','right') %lables is a cell array with strings
title({'Level Lines'},'FontSize',12,'FontName','Times New Roman');
camroll(180);

我尝试了什么:

c = get(gca, 'CurrentPoint'); % get handles to children
xLimits = get(gca,'XLim');  %# Get the range of the x axis
yLimits = get(gca,'YLim');  %# Get the range of the y axis
xdata = get(gca,'XData')
map2pix(x(3,1),y(3,1))
test=['1','1','1','1','1','1','1','1','1'];
uicontrol('Units','points','Style','text','Position',[x(3,1),   y(3,1),20,20], 'String',lables(3), 'TooltipString','dings');

输出类似于:

x =

0.4167
0.1667
0.5000
0.8333
0.5000
0.3333
0.5833
0.5000
0.6667


y =

0.6667
0.1667
0.8333
0.1667
0.5000
0.1667
0.3333
0.1667
0.1667

我很高兴并感谢每一个答案! 来自柏林的问候, 的Mathias

0 个答案:

没有答案