在使用matlab进行建模或者数据分析时,有时候需要在画多张图,或者在一张图中画几个坐标系,而每一个坐标系中的图形需要多次完成,当然最简单的方法是单独准备好每一个坐标系的数据,再逐一画每一个坐标系的图,就不存在坐标系切换的问题。
但有时候不可避免切换坐标系,比如图形时实时更新的,上面的思路就不可行。再比如我们在设计的过程中,新的灵感到来,需要在原来的基础上再加一个坐标系,这时候可以在原来的基础上稍作修改,添加几行代码就可以了,不需要推倒重来。
在matlab画图时,matlab使用句柄来管理各层级窗口以及元素之间的关系。切换坐标系,只要得到坐标系的句柄就可以。用一个变量存储创建坐标系时的句柄
axes命令,当坐标系句柄不存在时,创建一个figure对象,并在画布中创建一个坐标系,如果提供一个已经存在的坐标系句柄,则切换到指定的坐标系
如果画图前没有使用axes命令创建坐标系,直接使用绘图命令绘图时,matlab会自动创建一个figure对象 ,并在figure对象中创建一个坐标系(坐标系对象不能单独存在)
handle1=plot(1:10)
handle2=plot(10:-1:1)
axes(handle1)
hold on
bar(1:10)
hold off
axes(handle2)
bar(10:-1:1)
hold off
handle1=axes();
plot(1:10)
handle2=axes();
plot(10:-1:1)
axes(handle1)
hold on
bar(1:10)
hold off
axes(handle2)
hold on
bar(10:-1:1)
hold off
handle1=subplot(211)
plot(1:10)
handle2=subplot(212)
plot(10:-1:1)
axes(handle1)
hold on
bar(1:10)
hold off
axes(handle2)
hold on
bar(10:-1:1)
hold off