广东茶叶网站建设,优化师培训机构,恺英网络公司最新消息,广西南宁网站推广通过Matlab所绘制的插图#xff0c;如不进行一定的调整#xff0c;其四周往往存在一定范围的白边。
白边的存在会影响数据展示效果#xff0c;有时也会给论文的排版造成一定麻烦。
要想消除白边#xff0c;一种简单的方法是#xff0c;在导出插图后#xff0c;用其它软…通过Matlab所绘制的插图如不进行一定的调整其四周往往存在一定范围的白边。
白边的存在会影响数据展示效果有时也会给论文的排版造成一定麻烦。
要想消除白边一种简单的方法是在导出插图后用其它软件的‘裁剪’功能手动裁掉白边。
然而这一办法处理一两张图片还好一旦量多起来那简直是灾难。
所以要想办法在源头解决问题避免过多的机械劳动。
目前消除白边的思路主要有两种一种是画布填充一种是直接裁剪。
画布填充法作用于图片导出前通过一定的手段使绘图区域填充整个画布其优点在于导出图片后不会改变画布尺寸但操作相对复杂。
直接裁剪法作用于图片导出过程中通过一定的图片导出工具直接识别、裁剪画布中白边部分其优点在于操作简单但会导致画布尺寸的改变。
由于两种方法作用于不同的作图阶段因此可以结合使用。 方法1
LooseInset是Matlab坐标轴的一个隐藏属性其默认值是[0.13, 0.11, 0.095, 0.075]从而为刻度标记留出一定的空间。
若将其清零则可以消除白边。
set(gca, LooseInset, [0,0,0,0]);
效果如下图所示 方法2
另一种方法是结合TightInset属性与LooseInset属性。
Matlab中坐标轴的Positon蓝色OuterPosition红色与TightInset品红范围如图所示。 set(gca,LooseInset,get(gca,TightInset))
效果与1基本一致 方法3
通过改变坐标区的‘Position’信息以消除白边。
set(gca, Position, get(gca,OuterPosition) - ... get(gca,TightInset) * [-1 0 1 0; 0 -1 0 1; 0 0 1 0; 0 0 0 1]); 方法4
在Fileexport setup中选择‘Expand axes to fill figure’。
效果与上述三种方法效果类似。 方法5
有时候会遇到坐标轴刻度间距一致axis equal且数据纵横坐标范围相差较大的情况。
比如这样 或是这样 左图没加‘axis equal’右图加了‘axis equal’。其中右图坐标区的空白可以用axis tight消除 这时若使用前述方法往往只能在一个方向去掉白边。 主要原因在于窗口的尺寸是不变的坐标区的纵横比又是锁定的。
所以可以计算坐标区长度与宽度的比例通过改变figure窗口尺寸以使坐标区填充画布
posget(gcf,Position); % 获取窗口尺寸信息pos(3)pos(4)/3; %将窗口宽度设为高度的三分之一set(gcf,Position,pos) % 更新窗口尺寸 该方法对其它情况其实同样有效只是窗口、坐标区尺寸的设置会麻烦些。 方法6
利用export_fig图片导出工具在导出图片的同时可直接裁剪白边
export_fig test.png -r300 方法7
利用exportgraphics函数同样可以在导出图片的同时可直接裁剪白边
exportgraphics(figureHandle,test.png,Resolution,300)
其效果同export_fig类似。
以上。