【matlab】如何将subplot中绘出的子图放大显示zz

2024-12-19 18:33:19
推荐回答(1个)
回答1:

首先你要弄清楚matlab中figure 的架构 close all x = -pi:.1:pi; y = sin(x); plot(x,y) 当以上指令执行到plot时 matlab会create一个figure 再createn附属於这个figure的axes 然後在这个axes上画图 close all x = -pi:.1:pi; y1 = sin(x); y2 = cos(x); subplot(2,1,1);plot(x,y1) subplot(2,1,2);plot(x,y2) 当以上指令执行到subplot时 matlab会create一个figure 及"两个" 附属於这个figure的axes plot会自动在第一个axes上画图 第二个subplot会跳到第二个axes 也就是去activate第二个axes 接下来的plot就在这个axes上画图 请先保留这个图以便进一步解说 好...所以你现在要做的事情是 把你想要的axes放大到整个figure 并把其他axes删掉 首先你要找到这个figure下一共有多少axes 我们要用get指令 t=get(gcf,'children') get用来取出物件的property gcf就代表目前active的figure children就是figure的其中一种property 在这里就代表所有归gcf管的axes 你会发现t是个长度为二的vector 因为我们已经用subplot创了两个axes 如果执行delete(t(1)) 那cos的就会被删去 接下来得把剩下的axes放大 set(t(2),'position',[0 0 1 1]) set就是重新设定物件的property t(2)就是我们要设定的axes position是axes的其中一种property [0 0 1 1]就是我们要设定的值 分别代表左底宽高 因为你希望放到最大 所以"左边" 距离figure的框要是零 而"底边" 距离figure的框要是零 宽度及高度都要是 100% 这篇讲的很简略 你应该把matlab help中的Graphics翻过一次 尤其是Handle graphic Objects 来互相对照