Matlab画图进阶

Posted constchar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab画图进阶相关的知识,希望对你有一定的参考价值。

转自http://blog.sina.com.cn/s/blog_6407cd700101921q.html

axes和figure都属于graphics object,用于绘图与图像显示,既然是两种东西,当然两者之间并不是等同的关系,下面将就几个问题进行解释,让大家正确区分这两个概念。

    第一:什么是figure?

    figure的翻译是图像,这个谁都知道,但是在matlab中的figure对象准确意义应该是:matlab软件用于直观性图形输出的窗口个体,这个概念很多人没有。

    第二:什么是axes?

    一张白纸上可以画画,你可以在纸上的任何区域画,这个确定画图区域并确定作图的一些方式的东西的就是axes,也就是坐标对象。画图的作用就是,在当前的活动figure对象中的一个坐标对象上作图。

    第三:axes与figure

    一张白纸上可以画在几个区域内画图,而所谓区域,必须存在于白纸上才有意义。figure上可以有多个axes,axes必须在figure上,要画图必须有axes。

    第四:关于句柄

    axes和figure的对象属性能让用户方便的进行操作,例如在figure上选中一个axes:

set(figure_handle,‘CurrentAxes‘,axes_handle)

第五:关于axes图像复制问题

前些天想从在gui中现这样一个功能:在gui中对其中的一个axes上的图像进行copy fiure,结果无论是hgexport函数还是print,操作对象只能是fiure句柄,在网上找了找发现有几个朋友跟我有同样的想法,都是没看到解决办法,一想的确是2了,就好比在figure用了subplot命令,难道你还想一次copy figure只复制一个子图么?办法不是没有,将子图复制为新的figure对象输出后删除,但是没太大意义。

实现方法:

1 newf = figure(visible,off); %产生不可见的figure对象 
2 
3 axes2 = copyobj(handles.axes1,gcf); %把GUI中的图复制到新figure中 
4 
5 set(axes2,units,default,position,default); 对axes进行设置 
6 
7 hgexport(gcf,-clipboard); %输出到剪贴板 
8 
9 delete(newf); %删除不可见的figure

       注意,创建为新的坐标轴对象后,必须对其位置,大小进行调整,否则会出现混乱,即上文的set语句,根据需要进行调整。

以上是关于Matlab画图进阶的主要内容,如果未能解决你的问题,请参考以下文章

matlab中画图线型怎么设置

请问在matlab中画图,图的题目,坐标名还有每条曲线的图注怎么添加啊!

matlab:matlab关于原图修改及画图的相关问题

在matlab画图里用Latex代码打出绝对值\abs是不行的,怎么搞?

matlab画图

matlab画图时怎么给多个点(有坐标)标注数字序号啊?