[英]Matlab - can't display manually set axes
我创建了一个图和一个uicontrols面板。 当我运行程序时,面板将覆盖默认轴(如果更合适,则覆盖绘图区域)。 因此,我想将面板放置在某个位置,并将轴(或绘图区域)设置在单独的位置。 我已阅读Matlab帮助,并尝试了set,get,CurrentAxes,Axis方法的许多变体。 我还是不知道。 到目前为止的基本代码是
mytitle = 'Kinematic Control of a Redudant Robotic System';
simfig = figure( 'menubar', 'none', 'position', [ 140 140 600 600], 'Name', mytitle, 'NumberTitle', 'off');
ax = axes( 'Parent', simfig, 'Units', pixels, 'Position', [ 150 150 300 300], 'XLim', [ 0 10], 'YLim', [ 0 8]);
panbut = uipanel( simfig, 'Units', pixels, 'position', [20 45 143 150], 'Title', 'Simulation Buttons');
%buttons
up = uicontrol( panbut, 'style', 'pushbutton', 'string', 'up', 'position', [ 50 90 40 40], 'callback', @up_button_press);
down = uicontrol( panbut, 'style', 'pushbutton', 'string', 'down', 'position', [ 50 10 40 40], 'callback', @down_button_press);
right = uicontrol( panbut, 'style', 'pushbutton', 'string', 'right','position', [ 90 50 40 40], 'callback', @right_button_press);
left = uicontrol( panbut, 'style', 'pushbutton', 'string', 'left', 'position', [ 10 50 40 40], 'callback', @left_button_press);
我想念什么?
如果使用position
属性放置图,则结果可能会很不准确,因为标签和刻度标签的空间会添加到您在position
定义的空间。
为了避免重叠,可以设置axes
的OuterPosition
属性:
mytitle = 'Kinematic Control of a Redudant Robotic System';
simfig = figure( 'menubar', 'none', 'position', [ 140 140 600 600],...
'Name', mytitle, 'NumberTitle', 'off');
ax = axes( 'Parent', simfig, 'Units', 'pixels','outerPosition', [ 150 150 300 300], ...
'XLim', [ 0 10], 'YLim', [ 0 8]);
panbut = uipanel( simfig, 'Units', 'pixels', 'position',...
[20 45 143 150], 'Title', 'Simulation Buttons');
%buttons
up = uicontrol( panbut, 'style', 'pushbutton',...
'string', 'up', 'position', [ 50 90 40 40],...
'callback', @up_button_press);
down = uicontrol( panbut, 'style', 'pushbutton',...
'string', 'down', 'position', [ 50 10 40 40], ...
'callback', @down_button_press);
right = uicontrol( panbut, 'style', 'pushbutton',...
'string', 'right','position', [ 90 50 40 40], ...
'callback', @right_button_press);
left = uicontrol( panbut, 'style', 'pushbutton',...
'string', 'left', 'position', [ 10 50 40 40],...
'callback', @left_button_press);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.