前言
去年投稿了哈尔滨工业大学学报,因为模板问题没有过于要求投稿的细节,所以出图都是按照自己的风格来的。录用前的最后要求时需要修改图片格式,具体是表示成函数图,并且横纵坐标保持相同的精确位数。我想那么多图片我咋搞呀,一个图片打开,然后粘贴一段代码运行还要重新渲染保存,那可实在太浪费时间了,不如写一段做个批处理吧。
前提 为我有原图的批量命名的fig文件
要求
- 函数图,编辑老师说即没有上、右框线
- 最好不要有网格线
- 保持坐标轴有效数字或者精确数字一致
相关代码
for i=1:8
for j=1:6
name=strcat('E:\哈工大学报pics\',num2str(i),'-',num2str(j),'.fig');%批量读取文件的名字
newname=strcat('n',num2str(i),'-',num2str(j),'.fig'); %新存的fig
newpng=strcat(num2str(i),'-',num2str(j),'.png'); %输出的png
open(name) %打开文件
box off; %去除边框
grid off; %去除网格线
set(gca,'xTickLabel',{'0';'0.05';'0.10';'0.15';'0.20';'0.25';'0.30'}); %设置横坐标
set(gca,'yTickLabel',num2str(get(gca,'yTick')','%.1f')) %设置纵坐标
saveas(gca,newname); %保存fig文件
print(gcf,newpng,'-dpng','-r300'); %按300分辨率输出
pause(1) %为了查看设置了暂停,可注释掉
close
end
end
技术要点
- 通过命令行或文件"菜单指定所需的分辨率来保存图像.
命令行:使用 print,只需包含选项 -r###,其中 ### 如果您想要的分辨率。通常 300 点每英寸 (dpi) 对我的目的来说足够高的分辨率,但如果需要,可以随意提高。显然,dpi 越高,图像文件的大小就越大。
print(gcf,‘foo.png’,‘-dpng’,‘-r300’);*//300 dpi
菜单模式:选择文件,导出设置,打开渲染,选择需要的分辨率,然后导出的时候再设置文件格式,png比较好。
- 用set gca/gcf 设置figure的属性
具体属性可以通过命令行查看并进行相应编辑,涉及内容过多,并且可以个性化定制,暂时不展开说明。
效果展示
前后对比图如下,可以看到,网格线和框线都没有了,并且横坐标的精确位数都统一了,当然0 是不能变的。