我想问一下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]);
但它不起作用。 你们能帮助我吗? 任何帮助我都会很高兴。
答案 0 :(得分:0)
首先针对轴问题:您必须设置XLim
和YLim
,即set(gca,'XLim',[0 1],'YLim',[0 1])
。您还应将XLimMode
,YLimMode
设置为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
的子项后,您无需在移动或重新定位时关注它你的注释。