MATLAB — 绘图 axis与axes
axis
-
目的: 调整坐标轴范围以及纵横比
-
常用语法:
axis(limits)
- limits:
[xmin xmax ymin ymax]
- limits:
-
举例:
将x轴范围和y轴范围限定在某个区间内
x = linspace(0,2*pi);
y = sin(x);
plot(x,y,'-o')
axis([0 2*pi -1.5 1.5])
-
引申:限制坐标轴范围的同时,x轴和y轴的刻度怎么改?
-
set(gca,’xtick’,1:2:10)
: 将x轴上显示的刻度改为从1到10,然后间隔是2.x = linspace(0,2*pi); y = sin(x); plot(x,y,'-o') axis([0 2*pi -Inf Inf]) set(gca,’xtick’,0:0.5*pi:2*pi)
-
- 小知识:
gcf
: 返回当前Figure对象的句柄;gca
: 返回当前axes对象的句柄。
axes
-
目的: 在图窗定义多个坐标区域
-
常用语法:
axes(Name,Value)
- 坐标区布局(调整axes其他属性的还有很多,可以自己去参阅官方文档)
- 关键字: ‘Position’
- [left bottom width height] 归一化
- 坐标区布局(调整axes其他属性的还有很多,可以自己去参阅官方文档)
-
举例:
figure
ax1 = axes('Position',[0.1 0.1 0.7 0.7]);
ax2 = axes('Position',[0.65 0.65 0.28 0.28]);
contour(ax1,peaks(20))
surf(ax2,peaks(20))
-
当我希望在同一个figure中大小合适的,在左边显示一个影像,右边显示一个plot时:
img=magic(256); plot_value=1:1:100; figure ax1 = axes('Position',[0.05 0.35 0.4 0.53]); imagesc(ax1,img); title(ax1,'') axis off ax2 = axes('Position',[0.55 0.35 0.4 0.53]); plot(ax2,plot_value,'r-','linewidth',1.5) title(ax2,'...')
(直接用的axes,而没有用subplot, 想改变布局的话,自己调一下axes中’position’的数值)