在matlab

时间:2015-06-30 18:29:41

标签: matlab plot annotations set

我想问一下Matlab。我在这个论坛上找不到这个。 我想在绘图中的图例框顶部创建一个新文本框。我试图用一个叫做注释的函数来做这件事,但是我做得不对,因为有时新的盒子在传说框上面。有没有办法做到这一点,以保持我的情节好看?

我正在使用此代码: 注释('textbox',[0.7 0.192 0.1 0.1],'String',{'OOI =',num2str(OOI)}); 我正在玩那些数字,但我找不到合适的数字还没做我想做的事。

我有另一个问题。对于某些图,我的轴不会从点(0,0)开始。它从(0,-something)开始。我想知道是否有办法让它从(0,0)开始。我试过了

set(gca,'XTick',[0:20:300]); 集(GCA, 'YTick',[0:0.1:1]);

但它不起作用。 你们能帮助我吗? 任何帮助我都会很高兴。

1 个答案:

答案 0 :(得分:0)

首先针对轴问题:您必须设置XLimYLim,即set(gca,'XLim',[0 1],'YLim',[0 1])。您还应将XLimModeYLimMode设置为manual

对于textbox的问题,您应将Parent的{​​{1}}属性设置为您的轴,并将annotation属性设置为Units(或另一个,但必须是相同的)。根据我自己的经验,如果您运行的版本早于R2014b,那么定位normalized不会很好,但从R2014b向上,一旦您正确设置了annotation属性,定位就没有问题。

更新:小例子,但你可以使用Matlab的文档和google !!!

Parent

此时,f = figure('Position', [values_in_pixels]); a = axes('Parent', f); t = annotation('textbox', [0 0 1 1], 'EdgeColor', 'r'); 是一个注释,它是隐藏对象t的子项:

AnnotationPane

>> tp = get(t, 'Parent') tp = AnnotationPane 是您的身材tp的孩子:

f

但是,>> isequal(f, get(tp, 'Parent')) ans = 1 目前根据t定位,因为您可以看到红色边框符合图形。

f的父属性更改为您的轴t,您会看到红色边框适合您的轴:

a

更改set(t, 'Parent', a); 的位置,您可以看到t现在根据您的轴定位:

t

注意:由于默认情况下两个轴和注释都有set(t, 'Position', [.2 .5 .3 .1]) ,因此在将Units = normalized设置为t的子项后,您无需在移动或重新定位时关注它你的注释。