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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 界面设计中怎么把axes放在最上层相关的知识,希望对你有一定的参考价值。

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的这种应用场景。

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

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

如果你只需要设定大小,那么只需要最后一个设定就可以了
大小有后面的数字决定
参考技术B 右键点击那个axes,有个“置于顶层(Ctrl+F)” 参考技术C set(gca,'Layer','top')追问

是在界面设计中,我添加这个图层总是被text层挡在最底下

追答

什么意思?

matlab gui 中怎样 让图形和axes大小一样;

lz问的是让图像和axes一样大,而不是axes和图像一样大。

如果lz是想让图像显示出来和axes一样大,就在调用imshow的时候最后加一个参数 'fit'。如果图像长宽比例和axes不一样,显示结果会造成挤压变形。

如果lz是想让图像本身数据变的和axes一样大,就需要用imresize函数来改变图像尺寸。
参考技术A 让axes的坐标显示范围设置为图形的范围。
axes(xmin xmax ymin ymax),前两个是横轴的范围,后两个是纵轴的范围。

以上是关于matlab 界面设计中怎么把axes放在最上层的主要内容,如果未能解决你的问题,请参考以下文章

Axes在MATLAB GUI中占据整个屏幕

Matlab GUI 中怎么清空axes中的图形

MATLAB中axes怎么用啊?

matlab中怎么把一张图片从中间为界上下调换

怎么设置matlab gui axes的,x,y坐标的范围x表示时间,y表示温度

Matlab GUI中Axes控件的View Callbacks为啥没有WindowButtonDownFcn等一系列的函数?