本帖由MATLAB技术论坛原创(http://www.matlabsky.com),更多精彩内容参见http://www.matlabsky.com
% by dynamic of Matlab技术论坛
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2009-07-17 15:26:17
subplot ★★★★★
功能
分割figure,创建子坐标系
语法
h = subplot(m,n,p) or subplot(mnp)
subplot(m,n,p,'replace')
subplot(m,n,P)
subplot(h)
subplot('Position',[left bottom width height])
subplot(..., prop1, value1, prop2, value2, ...)
h = subplot(...)
描述
h = subplot(m,n,p)/subplot(mnp)将figure划分为m×n块,在第p块创建坐标系,并返回它的句柄。当m,n,p<10时,可以简化为subplot(mnp)或者subplot mnp
subplot(m,n,p,'replace')如果所指定的坐标系已存在,那创建新坐标系替换它
subplot(m,n,P)此时p为向量,表示将P中指定的小块合并成一个大块创建坐标系,P中指定的小块可以不连续,甚至不相连。
比如subplot(2,3,[2 5])表示将第2和5小块连成一个大块;subplot(2,3,[2 6])由于2和6不连续也不相连,此时表示将第2、3、5和6四块连成一个大块,相当于subplot(2,3,[2 3 5 6])
subplot(h) 将坐标系h设为当前坐标系,相当于axes(h)
subplot('Position',[leftbottom width height])在指定位置创建一个新坐标系,等效于axes('Position',[left bottom widthheight])
subplot(..., prop1, value1, prop2, value2,...)在创建坐标系时,同时设置相关属性,axes属性参见附录
h = subplot(...) 返回所创建坐标系的句柄
注意
使用subplot新建的axes块如果与已存在块重叠,MATLAB将删除已存在的axes并创建新的axes,除非已存在和需要创建的axes完全重合(此时相当于将它置为当前坐标系),此时如果想删除重建的话,需要使用'replace'参数
subplot(1,1,1)清空当前窗口所有坐标系对象,并创建一个默认的坐标系。注意此时subplot(1,1,1)和subplot(111)不完全等效,subplot(111)执行完以后,没有任何直观上的反应,它只是促使figure在下次调用绘图命令之前执行清空图形命令clfreset,接着创建一个默认坐标系。也就是说subplot(111)相当于将subplot(1,1,1)的操作分开了。由于subplot(111)执行完并没有创建新坐标系,故没法返回句柄,也就是说h=subplot(111)是错误的