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语句,根据需要进行调整。

时间: 2024-10-14 10:43:55

Matlab画图进阶的相关文章

Matlab画图-非常具体,非常全面

Matlab画图 强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数.此外,Matlab还提供了直接对图形句柄进行操作的低层画图操作.这类操作将图形的每一个图形元素(如坐标轴.曲线.文字等)看做一个独立的对象,系统给每一个对象分配一个句柄,能够通过句柄对该图形元素进行操作,而不影响其它部分. 本章介绍绘制二维和三维图形的高层画图函数以及其它图形控制函数的用法,在此基础

Matlab画图,坐标轴范围设置和间隔设置

在Matlab画图的时候,系统默认的坐标轴范围以及间隔有时候并不是很合适,如何根据自己的要求来显示呢,Set语句就可以帮忙咯!! 1. set(gca,'xtick',0:100:2500) 功能: 设置X轴坐标范围0到2500,显示间隔是100: 2.set(gca,'ytick',0:100:2500) 功能: 设置X轴坐标范围0到2500,显示间隔是100: 注意set语句要放在绘图语句后面才起作用! 如下面这个才起作用 plot(x,y) set(gca,'ytick',0:100:25

【Matlab编程】matlab 画图

1.  不用截图工具就可以将图保存成图像格式,并且没有背景颜色:saveas(gcf ,'outputname','png/jpg'),第三项省略时默认为fig.m文件 2.  计算形如(-1)^2/3,应该是默认先算(-1)^(1/3),plot的时候命令窗会警告略去了虚部, 为了避免不必要的麻烦((-1)^2)^1/3这样写,例子如下:这个是代码 clear clc subplot(1,2,1); ezplot('x^2+(y-(x^2)^(1/3))^2-1',[-2,2]); subpl

Matlab画图实现数据可视化

介绍: Matlab作为一种科学计算工具,在对大量数据进行处理运算方面,存在较大的优势:对于大量的数据,很难发现里面的规律,所以在这里特意介绍使用Matlab画图的各个命令,实现数据的可视化: 命令简单介绍: 二维绘图的基本命令由plot.loglog.semilogx.semilogy.polar.它们的使用方法基本是相同的,其不同点是在不同的坐标中绘制图形.plot命令使用线性坐标空间绘制图形:loglog命令在两个对数坐标空间中绘制图形:而semilogx.semilogy命令使用x轴(或

Matlab画图常用

Matlab画图包括标题.标签.图例等,还包括坐标轴的处理,如坐标轴翻转,坐标轴范围改变等. 参考:https://ww2.mathworks.cn/help/matlab/titles-and-labels.html?s_tid=CRUX_lftnav 标题和标签: title title(titleName,Name,Value) %Name属性名,Value属性值.常见属性有:color.fontsize.fontweight.fontname(字体) 创建多行标题: title({'Fi

MATLAB画图自动确定坐标范围(GUI)

今天在用MATLAB做我的毕设的时候碰到一个很纠结的问题,之所以说纠结是因为我觉得这个问题很简单,可是一时半会就是弄不出来(ー`′ー).鼓捣了半个小时左右吧,终于搞出来了.下面做个纪念: 问题描述 在做一个GUI的时候,需要在一个坐标系内画图,想要在图上添加一条直线,直线长度由坐标轴长度自动确定,dont know what to do. 问题解决 前面那些n次失败的尝试我就不说了,太急人了,总之一句话:就是被种种逻辑关系搞晕了-- 正文开始,下面是代码片段, xl = get(handles.

Matlab画图的输出格式

利用Matlab命令,可以输出.eps, .pdf格式的图形.有时候,在图形窗口直接保存会导致图形不完整,这时,可以用如下命令代替: saveas(p1, 't1.eps'); saveas(p1, 't1.pdf'); 上面的两个命令行可以分别导出.eps和.pdf的合适图形. 但是,.eps图形可能会在tex文档中浮动,此时可以采用.pdf格式.利用adobe acrobat prof. or DC将.pdf格式另存为.ps格式, 然后利用Gsview打开, 用菜单:PS to EPS将它进

解决Matlab画图直接保存.eps格式而导致图不全的问题

Matlab确是一款简单方便的工具,使用此工具绘图也是我们常用的一种手段,可是如果我们想将此图片保存成.eps格式并应用于latex中,就有可能会出现.eps格式的图片显示不全的问题,这个着实让我们头疼.今天,经过查阅资料,发现了一种方法,现将此方法具体化并分享给大家.如果还有更简单的方法,还请赐教~ 首先,打开目标图片(.fig格式),选择左上角的File,点击Print Preview,如图1. 图1 然后,根据图2来调整图片的一些属性.选中圈圈1标记的Layout,圈圈2中的内容是用来调整

MATLAB画图surf函数颜色控制参数c用法

专业今年开了MATLAB的课程(土木工程学MATLAB?),老师给出了保过题,为了不挂科也是苦逼百度+谷歌了半天,加上自己的琢磨,总算是明白些surf颜色控制方法了,在这里分享记录一下~初学matlab,理解的不是太深,望海涵. 题目 从excel中读取粒子,这些粒子具有三维的坐标,xyz,并且具有三维的速度,excel中的每一页内存储一个时间点的例子信息,x,y,z,vx,vy,vz,页的命名为sheet+i,希望能够先读取粒子信息到向量当中,然后粒子的位置进行图像显示,粒子采用球体进行显示,