matlab 界面设计中怎么把axes放在最上层

作者&投稿:麻荷 (若有异议请与网页底部的电邮联系)
matlab 界面设计中怎么把axes放在最上层~

1、楼上所说Layer属性不靠谱,该属性只决定axes的坐标轴、Tick等要素是否被坐标系里面的对象如patch、surface、image等所遮盖,与其它无关.

2、楼主的要求做不到.对于同一类型的图形对象,可以通过设置Children的顺序来调整其显示顺序,但是,GUIDE里面的text属于uicontrol控件,而控件总是显示在axes的前面,这一点据我所知无法改变.

3、一般来说,text应该和axes放在不同的位置,便发生重叠.如果确实有需要把text放在axes的后面显示,可以考虑单独为text创建一个axes,并将axes属性设为不可见,然后在该axes上面使用text函数创建文字对象(注意,不是uicontrol),应该可以达到这个目的.但是:(1)这个似乎只能通过编程实现,无法用GUIDE来做;(2)我仍然不认为有需要用axes遮盖text的这种应用场景.

方法如下:

创建一个GUI

画好了就如下图。

直接放代码了:
重点处加粗了。
% --- Executes on button press in pushbutton2.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
t = -5:.1:5;
y = sinc(t);
plot(handles.axes1,t,y,'gd');
legend(handles.axes1,'sin(x)/x');
% --- Executes on button press in pushbutton1.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
t = 1:.1:10;
x = sin(t);
y = cos(t);
plot3(handles.axes2,t,x,y,'r*');
legend(handles.axes2,'t-x-y');
3
plot(handles.axes1,t,y,'gd');
plot3(handles.axes2,t,x,y,'r*');
关键的就是这两句了,其它情况也是类似的。
结果就如下了

1、楼上所说Layer属性不靠谱,该属性只决定axes的坐标轴、Tick等要素是否被坐标系里面的对象如patchsurfaceimage等所遮盖,与其它无关。

 

2、楼主的要求做不到。对于同一类型的图形对象,可以通过设置Children的顺序来调整其显示顺序,但是,GUIDE里面的text属于uicontrol控件,而控件总是显示在axes的前面,这一点据我所知无法改变。

 

3、一般来说,text应该和axes放在不同的位置,便发生重叠。如果确实有需要把text放在axes的后面显示,可以考虑单独为text创建一个axes,并将axes属性设为不可见,然后在该axes上面使用text函数创建文字对象(注意,不是uicontrol),应该可以达到这个目的。但是:(1)这个似乎只能通过编程实现,无法用GUIDE来做;(2)我仍然不认为有需要用axes遮盖text的这种应用场景。



这plot之后,可以增加参数,控制线型或者marker的显示风格
例如

plot(x,y,'--rs','LineWidth',2,... %线型为红色虚线,marker为方框,线粗细设定为2
'MarkerEdgeColor','k',... %marker边缘颜色设定为黑色
'MarkerFaceColor','g',... %marker内部颜色设定为绿色
'MarkerSize',10) %marker大小设定为10

如果你只需要设定大小,那么只需要最后一个设定就可以了
大小有后面的数字决定

右键点击那个axes,有个“置于顶层(Ctrl+F)”

set(gca,'Layer','top')


林芝县15173298819: matlab 界面设计中怎么把axes放在最上层 -
文庾萘普: 修改属性参数,可以根据需要修改: msg = msgbox('数据另存完成!','提示信息','modal');msg_ = findobj(msg,'Type','text');msg_2 = findobj(msg,'Type','uicontrol');msg_3 = findobj(msg,'Type','figure');pos=get(msg_3,'Position');pos1=po...

林芝县15173298819: 在matlab中怎样将执行whos后的语句显示在界面的axes上,而不是在命令窗口 -
文庾萘普: 直接在command history 窗口选中一条命令,点鼠标右键,会有一个clear command history 选项,就可以把command history 清空了 直接在command history 窗口选中一条命令,点鼠标右键,会有一个clear command history 选项,就可以把command history 清空了

林芝县15173298819: matlab中imcrop怎么把GUI界面里axes1中想选的区域截图到axes2中去 -
文庾萘普: 建议 直接在axes2显示即可 axes(handles.axes16);imshow(a7);

林芝县15173298819: matlab绘制界面时,子函数的图形怎么到界面上去?求大神帮忙 -
文庾萘普: 在界面上放一个axes

林芝县15173298819: matlab界面设计:怎么样写程序,才能在一开始运行界面时就显示图片,没有按钮这些控件,只有axes? -
文庾萘普: M文件开头有一个...openfcn的函数 这个是程序运行最先执行的动作函数,你在这个函数里添加如下代码:h=imread('picture.jpg');%假设你要打开的图片名字为picture,格式为jpg,要将图片与程序放到一个目录下,否则要给出具体路径. 接着写:axes(handles.axes1);%指定在axes1中绘制图片; imshow(h); 结束!

林芝县15173298819: matlab中GUI的使用,调用m文件 -
文庾萘普: 方法和详细的操作步骤如下: 1、第一步,在计算机上安装matlab软件,见下图,转到下面的步骤.2、第二步,完成上述步骤后,双击matlab图标以打开其主页,见下图,转到下面的步骤. 3、第三步,完成上述步骤后,将鼠标移到“...

林芝县15173298819: 怎样在MATLAB GUI界面中调用另外一个GUI界面 -
文庾萘普: 1、首先打开matlab,点击主页上的新建->APP->GUIDE,如下图所示. 2、进去之后选择创建一个空的GUI界面,如下图所示. 3、进去GUI编辑界面之后,可以看到左侧是各种控件,按钮,文本框,表格,文本,复选框等,右侧是界面,如下图所示. 4、将左侧控件直接拖到右侧界面,注意布局,各种控件双击可以进去属性界面,可以设置控件属性. 5、保存GUI界面之后,可以看到同步生成了m脚本,负责控件函数的绑定,执行各种业务逻辑,代码可以贴在上面,如下图所示.

林芝县15173298819: MATLAB编程 如何在gui界面中绘制饼状图 -
文庾萘普: 我试过,其实不需要添加axes(坐标轴),直接在pushbutton的callback下输入以下程序就可以了:global im %设im为全局变量%选择图片路径 [filename,pathname,filterindex]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片')%合成路径+文件名 str=[pathname filename];%读取图片 im=imread(str); %使用第一个axes%显示图片 imshow(im);

林芝县15173298819: Matlab GUI 界面中已设置了一个坐标轴(axes1)用于画图,如何获取坐标轴上已画图形的句柄?求大神指教. -
文庾萘普: 当然你改变的是整个axes的颜色 要获取画的图形的句柄,首先有知道你画的是什么 画的是曲线,还是曲面 如果画的是曲线:set(findobj(gca,'type','line'),.........) 如果画的是曲面:set(findobj(gca,'type','line'),...........) 最好还是你画它的时候,把他的句柄保存起

林芝县15173298819: 在matlab的可视化界面设计(guide)中,怎么把运行的数据在界面上显示出来?,求大神指点...
文庾萘普: 你是怎么运行这个gui的?一般用GUIDE编辑的GUI会含有一个fig一个m文件,应该直接运行m文件. set(handles.text1,'String',str); str是要显示的结果, text1为静态文本框的tag.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网