当前位置: 首页 > news >正文

MATLAB 中有关figure图表绘制函数设计(论文中常用)

在撰写论文时,使用 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

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 函数。

主文件示例:

% 主文件路径与 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 命令行输入

addpath('路径到customize_plot文件夹');

例如:(注意要加单引号)

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 的路径设置中:

  1. 在 MATLAB 命令行输入 pathtool。或点击“设置路径”
  2. 添加 customize_plot.m 的路径并保存。

这样,即使重新启动 MATLAB,也能跨文件调用自定义函数。

http://www.lryc.cn/news/492193.html

相关文章:

  • Unity UGUI原理剖析
  • Spring框架使用xml方式配置ThreadPoolTaskExecutor线程池,并且自定义线程工厂
  • 架构-微服务-服务网关
  • 基于springboot的HttpClient、OKhttp、RestTemplate对比
  • (计算机组成原理)期末复习
  • 从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
  • 【Java从入门到放弃 之 Java程序基础】
  • 2024年11月26日Github流行趋势
  • 相亲交友小程序项目介绍
  • 使用ENSP实现默认路由
  • CSGO游戏搬砖党如何应对上海Major
  • 【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南
  • go-zero(八) 中间件的使用
  • vim 如何高亮/取消高亮
  • 蓝桥杯练习题
  • 【设计模式】创建型模式之单例模式(饿汉式 懒汉式 Golang实现)
  • 使用 Docker Compose 来编排部署LMTNR项目
  • 创建HTTPS网站
  • 以3D数字人AI产品赋能教育培训人才发展,魔珐科技亮相AI+教育创新与人才发展大会
  • springboot配置https,并使用wss
  • Qt SQL模块概述
  • JavaWeb后端开发知识储备2
  • RabbitMQ原理架构解析:消息传递的核心机制
  • redmi 12c 刷机
  • 四、Python —— 列表
  • Paper -- 建筑高度估计 -- 基于街景图像和深度学习的城区建筑高度计算
  • 机器学习周志华学习笔记-第6章<支持向量机>
  • 第三届航空航天与控制工程国际 (ICoACE 2024)
  • 【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
  • BERT 详解