您的位置:首页 > 编程语言 > MATLAB

【Matlab画图】如何去除Matlab图形中的边界2

2014-08-24 14:32 926 查看
尊重原创,转载请注明出处:http://blog.csdn.net/fallian/article/details/38796155

================正文分割线================

上一篇博文中,讨论了如何将Matlab所绘制的图形中多余的空白去掉,不过上一篇博文中,我没有考虑axis变化后的情况,这里讨论变化后的情况,如何做。

原始图形

先画一个与上一篇博文中相同的图形,使用如下命令:

x = 0:0.01:2*pi;
y = sin(x);
plot(x,y,'k');


绘制得到的图形如图1所示。



图1, 原始图

这张图直接保存成eps后,要在latex中使用的话,会有过多的边界空白,另外图中的曲线并没有占满整个白色绘图区域,下面我们依次解决这两个问题。

使图形充满整个白色绘图区域

要充满整个区域,可以使用如下命令:

axis tight


执行上述命令后,可以得到如图2所示的结果。



图2,紧凑的图形显示结果

使得绘图坐标在两个方向上采用相同的比例

在某些场合下,我们需要按相同的比例来显示图形,可以使用如下命令完成这个任务。

axis equal


在执行了axis tight的基础上,执行这个命令,可以得到如图3所示的结果。



图3, 使用相同的坐标比例之后的结果

使用了axis equal之后,图形中上下的空白区域又多了,可以再执行下axis tight,就可以获得如图4所示的结果了。



图4 再次axis tight的结果

如果图4是你想要的最终结果,可以只在图1的基础上执行axis image命令。

去掉额外空白后保存

上一篇博文中的方法确实是非常傻瓜的方法,如果你要是用file->save as的话,上一篇博文也是不能解决问题的,原因是本文中的绘图区域的尺寸是被Position的矩形区域包围的,Position的矩形区域并没有被完全利用,也就是说绘图区域要小于等于Position的矩形区域,单单通过设置Position是不能结果问题的。

既然上一篇中使用的是笨办法,也有个笨办法来解决这一点,就是通过调整gcf的大小来做到这一点。

这里要介绍的不是这种笨办法,其实只需要一个命令即可:

saveas(gcf, 'myfigure', 'eps')


过一会,打开保存的eps图,你会发现边界已经没有了。

Latex插图实验

分别使用figure对话框上的file->save as按钮和 saveas函数保存两个eps图形,导入latex中,排版结果如下图所示。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab latex