图表创建好后需要保存输出,本节讨论输出图表时需要注意的一些问题。
图表的大小
图表的大小往往决定于图表坐标系所在绘图窗口的大小。常犯的错误是将图输出在默认大小的绘图窗口中,将图复制或保存出来后,粘贴或插入到Word文档中,然后调整图表到合适的大小。
这样做的结果,绘图时做的设置如字体大小、线宽等全变了,比如原来是8号字体,现在图片缩小后字体实际上变小了。所谓的属性设置,实际上因为后期图片大小的变动进入了不可控状态,属性值被改变了。
使用窗体对象的Position属性可以改变窗体的位置和大小。先把绘图窗口的大小确定下来,再设置图表中图形元素的属性才有效。比如用下面的代码用PaperUnits属性设置页面长度单位为磅,用Position属性设置当前窗口的大小为宽度300磅,高度200磅。
set(gcf,'PaperUnits','points','Position',[0 0 300 200])
不同期刊对图表的大小有自己的要求,请具体参阅。
字体设置
各种期刊对论文中文字的字体和字体大小都有要求,比如2-8磅等,最大不能超过12磅等。常见的英文字体有Arial, Times New Roman等。
字体设置需要注意的问题,第一就是图表大小要先确定下来,成图后图表大小不作改动或不作大幅改动。第二就是字体的风格要统一,不要使用过多的字体样式。
将图表保存为图片
使用print函数可以将MATLAB中生成的图表保存为指定格式的图片,比如,下面的语句将当前绘图窗口中的图表保存到D盘下的fig2.png图片文件。
print(gcf,['d:\fig2','.png'],'-dpng')
MARLAB R2020以上版本还可以使用exportgraphics函数将图表保存为图片文件。使用该函数的额外好处是保存的图片已经去除了图表四周的空白,省去了后期裁剪的麻烦。下面的代码用该函数将当前绘图窗口中的图表保存到D盘下的fig2.png文件。
exportgraphics(gcf,'d:\fig2.png','ContentType','image')
分辨率的设置
分辨率指一英寸内的像素点数。分辨率越高,即一英寸内的像素点数越多,图片越清晰。各种期刊对输出的图表有分辨率的要求,一般是DPI 300,灰度图片分辨率可以低一点,DPI 100~200。MATLAB中使用print函数可以指定输出图表到图片时的格式和分辨率。例如下面的代码将图表输出到D盘下的fig2.png文件,图片格式为.png,分辨率为DPI 300。
print(gcf,['d:\fig2','.png'],'-r300','-dpng')
MARLAB R2020以上版本还可以使用exportgraphics函数在保存图表到图片文件时指定分辨率。
exportgraphics(gcf,'d:\fig2.png','ContentType','image','Resolution',300)
矢量格式输出
矢量格式的图片在无限放大时不影响图形的精度,所以图片质量很高。MALAB支持多种图片矢量格式,如pdf,eps,svg等。可以用print函数和exportgraphics函数实现矢量格式输出。
如果MATLAB版本高于或等于R2020,建议使用exportgraphics函数将图表以矢量图形格式输出。使用这种方式输出,可以自动去除图表周围的空白。下面的语句将当前绘图窗口中的图表以pdf格式保存。
exportgraphics(gcf,'d:\fig2.pdf','ContentType','vector')
使用exportgraphics函数将图表以pdf格式输出后打开的效果如图1-56所示,图表四周的多余空白都已被裁剪掉了。
图1-56 用exportgraphics函数输出的pdf格式图表