1.Matlab中gca、gcf、gco区别
名词 | 含义 |
---|---|
gcf | 返回当前Figure 对象的句柄值 |
gca | 返回当前axes 对象的句柄值 |
gco | 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure 的CurrentObject属性中。 |
2.matlab下的图形对象
图形对象是用以显示图形和用户界面元素的基本元素。下面列出了各种图形对象。
对象 | 描述 |
Root | 对计算机屏幕最高级的对象 |
Figure | 用来显示图形和用户界面的窗口 |
Axes | 在窗口中显示图形的轴 |
Image | 二维像素基础图 |
Uicontrol | 用户界面控制 执行一个对用户交互作用的函数 |
Uimenu | 用户定义窗口菜单 |
Uicontextmenu | 右键单击对象时弹出的菜单 |
Light | 影响斑点和表面对象着色的光源 |
Line | 用于诸如plot, plot3, semilogx 等函数的线 |
Patch | 带边缘的填充多边形 |
Rectangle | 二维形状,从矩形到椭圆 |
Surface | 由x-y 平面以上的数据值所作图创建的矩阵数据的三维表示 |
3. 坐标轴删除
set(gca,’xtick’,[]) %去掉x轴的刻度
set(gca,’ytick’,[]) %去掉y轴的刻度
set(gca,’xtick’,[],’ytick’,[]) %同时去掉x轴和y轴的刻度
x=20:10:20000;
y=rand(size(x));
semilogx(x,y);
set(gca,’XLim’,[20 20000]);
%就是设置当前图的横轴和纵轴的范围,lim就是limite的意思。
%%也可以不用set设置,而直接用函数xlim和ylim设置
%%xlim(gca,[-20,20]);
%%ylim(gca,[-20,20]);
%%%也可以用函数axis设置
%%%axis(gca,[-20,20,-20,20])
%%%%gca是get hanlde to current axis(得到当前图的句柄),除set函数外在以上函数中均可省略不写,默认就是gca。
set(gca,’XMinorTick’,’off’);%关闭精准坐标刻度
set(gca,’XTick’,[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]);
set(gca,’XGrid’,’on’);%绘制X轴垂直网格线
set(gca,’XMinorGrid’,’off’);
4.Matlab坐标轴刻度调整
subplot(3,2,1)
plot(x)
title('默认格式')
subplot(3,2,2)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'ytick',[]);
title('x自定义间隔,y关闭')
subplot(3,2,3)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'xticklabel',sprintf('.4f|',get(gca,'xtick')))
set(gca,'ytick',[2 4 5 7]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});
title('x、y自定义间隔、精度及显示方式')
subplot(3,2,4)
plot(x)
set(gca,'xminortick','on');%style 5
set(gca,'ticklength',[0.05 0.025]);
set(gca,'tickdir','out');
title('x、y坐标刻度显示方式')
subplot(3,2,5)
plot(x)
set(gca,'xtick',[min(x) (max(x)+min(x))/2 max(x)]);
set(gca,'ytick',[min(x) (max(x)+min(x))/2 max(x)]);
title('论文中常用的标准3点式显示')
x=20:10:20000; y=rand(size(x));
subplot(3,2,6)
semilogx(x,y);
set(gca,'XLim',[20 20000]);
set(gca,'XMinorTick','off');
set(gca,'XTick',[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]);
set(gca,'XGrid','on');
set(gca,'XMinorGrid','off');
title('自定义网格显示')