原文地址:http://blog.sina.com.cn/s/blog_6cf5b21b0101g4cd.html
matlab 输出图片文件时,图片的四周总有白色边框,如何裁剪掉这些边框呢。
首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie。screen下面是figure。figue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。
figure下面是axes。axes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话, 里面的图线也会跟着变化的。
运行如下命令:
[x,y]=meshgrid(1:15,1:15);
tri = delaunay(x,y);
z = peaks(15);
H = trisurf(tri,x,y,z);
view(2);
显示如下:
这个figure1就是figure,里面坐标系包围的就是axes。 输出图片时,就会留下外面的灰色边框。
如果运行get(gcf), get(gca),get(H) 就会等到许多你可以修改的关于更个层次对象的句柄。
set(gcf,'color',[0 0 0.3]);可以更个灰色部分的颜色。
如果使之为空则为, set(gcf,'color','none'); 效果如下:
set(gcf,'InvertHardcopy','off'); 当复制或者打印图片时,边框的颜色就不会再变为白色。
set(gcf,'paperpositionmode','auto'); 当打印或保存图片时,matlab会调整图片大小,设置为auto,matlab就不会自动调整图片大小了。
调整plot area的显示范围,以去掉白色边框部分。
axis([min(x(:)) max(x(:)) min(y(:)) max(y(:))]); 效果如下:
如何去掉周围的边框呢。
set(gca,'position',[0 0 1 1]); 效果如下: