在撰写论文时,使用 MATLAB 导出的图像常常因大小和格式不统一,导致投稿时编辑部频繁退稿,要求修改和调整。这不仅浪费时间,也增加了工作量。为了减少这些麻烦,可以在 MATLAB 中导出图像时提前设置好图表的大小、格式和其他参数,使其符合论文标准,从而降低后期调整的复杂度,提高投稿效率。
一、图片格式要求
一般,对于论文中图片的要求有:
1、线的属性
- 线条宽度:通常设置为 1.0 到 1.5 之间,以确保在打印或显示时清晰可见。
- 线条颜色:使用对比度高的颜色,如黑色、蓝色等,避免使用过于鲜艳或难以区分的颜色。推荐使用 MATLAB 默认颜色或自定义 RGB 值。
- 线条样式:实线用于主要数据,虚线或点线用于辅助信息,确保不同数据集之间易于区分。
2、字体设置
- 字体类型:中文使用宋体,英文字母和数字使用 Times New Roman 或其他常见学术字体。
- 字体大小:标题通常为 14 号字,坐标轴标签为 12 号字,刻度标签为 10 号字,确保在论文中清晰易读。(但我学校这边要求全是9号字体,不同期刊要求也有区别)
3、图片尺寸
- 图表尺寸:图片通常占据单栏或双栏的宽度。单栏宽度一般是6.5-7cm,对应高度是4.5-5cm,双栏宽度一般单栏宽度两倍。
- 比例:保持图表的宽高比,避免拉伸或压缩导致的失真。
4、颜色使用
- 颜色选择:使用颜色区分不同的数据系列,避免颜色过多导致混乱。推荐使用 MATLAB 默认颜色或调色板中对比度高的颜色。
5、分辨率
- 分辨率:导出图像时设置为 300 DPI,确保打印和显示时的清晰度。
6、图例
- 图例位置:放置在不遮挡数据的位置,通常在图表的右上角或上方。
- 图例字体:与图表其他部分字体保持一致,确保易读。
7、文件格式
- 矢量格式:优先使用矢量格式如 PDF、EPS,以确保放大或缩小时图像不失真。
- 位图格式:如使用 PNG 格式,确保分辨率足够高(300 DPI 及以上)。
二、matlab中具体代码
为避免在每个图表后反复进行设置,可以将自定义函数保存为单独的 .m
文件,从而实现跨文件调用。
1. 保存自定义函数到单独文件
将 customize_plot
函数保存为一个独立的 .m
文件,例如 customize_plot.m
:
Matlab
function customize_plot(figHandle, xLabel, yLabel, titleText, legendLabels, legendLocation)
% customize_plot - 自定义图表样式以满足论文要求
%
% 输入参数:
% figHandle - 图形句柄 (figure handle),指定要自定义的图形
% xLabel - X轴标签 (string),如 '时间 (s)'
% yLabel - Y轴标签 (string),如 '幅值 (m)'
% titleText - 图表标题 (string),如 '实验结果对比'
% legendLabels - 图例标签 (cell array of strings),如 {'数据1', '数据2'},可选,如果未提供或为空,图中将不显示图例。
% legendLocation - 图例位置 (string),如 'northeast'(右上角),'southwest'(左下角)等。如果位置未提供,可设定默认值为 'best' 或其他。可选
% 设置坐标轴字体大小和样式
set(gca, 'FontSize', 10, 'FontName', 'Times New Roman');
% 设置标题、坐标轴标签及字体
title(titleText, 'FontSize', 14, 'FontName', '宋体');
xlabel(xLabel, 'FontSize', 12, 'FontName', '宋体');
ylabel(yLabel, 'FontSize', 12, 'FontName', '宋体');
% 设置坐标轴字体大小和样式
set(gca, 'FontSize', 10, 'FontName', 'Times New Roman');
% 设置图形尺寸
set(figHandle, 'Units', 'centimeters', 'Position', [10, 10, 14, 10]); % 宽 14cm,高 10cm
% 设置线条宽度(对于已绘制的线条)
lines = findall(gca, 'Type', 'Line');
set(lines, 'LineWidth', 1.5);
% 设置网格线
grid on;
% 设置背景为白色
set(figHandle, 'Color', 'white');
% 如果提供了图例标签,则添加图例
if exist('legendLabels', 'var') && ~isempty(legendLabels)
legend(legendLabels, 'FontSize', 10, 'FontName', 'Times New Roman', ...
'Location', legendLocation, 'Box', 'off'); %设置图例边框为透明(Box, 'off')。
end
end
这里注意: set(gca, 'FontSize', 10, 'FontName', 'Times New Roman');这个要放在前面,先设置坐标轴字体,再设置标题、坐标轴标签,否则标题、坐标轴标签会被覆盖全都变成Times New Roman,导致无法显示文字
2. 在主文件中调用
在主脚本文件中,直接调用 customize_plot
函数。
主文件示例:
Matlab
% 主文件路径与 customize_plot.m 文件同目录下
% 示例:绘制带有图例的图形
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);
figure;
plot(x, y1, 'r-', x, y2, 'b--'); % 两条曲线
customize_plot(gcf, '时间 (s)', '幅值', '正弦与余弦函数', {'sin(x)', 'cos(x)'}, 'northeast');
%绘制不带图例的图形
%plot(x, y1, 'r-', x, y2, 'b--'); % 两条曲线
%customize_plot(gcf, '时间 (s)', '幅值', '正弦与余弦函数');
效果如下:
3. 跨路径调用
如果 customize_plot.m
文件不在当前工作目录中,则需要添加其所在目录到 MATLAB 搜索路径,在 MATLAB 命令行输入
Matlab
addpath('路径到customize_plot文件夹');
例如:(注意要加单引号)
Matlab
addpath('D:\appd\PreScan_8.5.0\Documents\Experiments\Experiment_OSM');
%addpath('D:/appd/PreScan_8.5.0/Documents/Experiments/Experiment_OSM');
%addpath('D:\\appd\\PreScan_8.5.0\\Documents\\Experiments\\Experiment_OSM');
添加路径后,就可以像调用本地函数一样使用 customize_plot
。否则会是下图效果
4. 将路径永久保存
如果需要经常使用,可以将 customize_plot.m
的路径永久保存到 MATLAB 的路径设置中:
- 在 MATLAB 命令行输入
pathtool
。或点击"设置路径" - 添加
customize_plot.m
的路径并保存。
这样,即使重新启动 MATLAB,也能跨文件调用自定义函数。