当前位置: 首页 > 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,也能跨文件调用自定义函数。

相关文章:

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

在撰写论文时,使用 MATLAB 导出的图像常常因大小和格式不统一,导致投稿时编辑部频繁退稿,要求修改和调整。这不仅浪费时间,也增加了工作量。为了减少这些麻烦,可以在 MATLAB 中导出图像时提前设置好图表的大小、格式和…...

Unity UGUI原理剖析

UI最重要的两部分 UI是如何渲染出来的点击事件如何触发何时发生UI重绘 1:UI如何渲染出来的 UI渲染一定是有顶点的,没有顶点就没法确定贴图的采样,UGUI的顶点在一张Mesh上创建,经过渲染管线UI就渲染到屏幕上了,UI的渲染…...

Spring框架使用xml方式配置ThreadPoolTaskExecutor线程池,并且自定义线程工厂

一、自定义线程工厂 自定义线程工厂需要实现java.util.concurrent.ThreadFactory接口,重写newThread方法。 示例代码: package com.xiaobai.thread;import org.apache.log4j.Logger;import java.util.concurrent.ThreadFactory; import java.util.conc…...

架构-微服务-服务网关

文章目录 前言一、网关介绍1. 什么是API网关2. 核心功能特性3. 解决方案 二、Gateway简介三、Gateway快速入门1. 基础版2. 增强版3. 简写版 四、Gateway核心架构1. 基本概念2. 执行流程 五、Gateway断言1. 内置路由断言工厂2. 自定义路由断言工厂 六、过滤器1. 基本概念2. 局部…...

基于springboot的HttpClient、OKhttp、RestTemplate对比

HttpClient详细 Httpclient基础&#xff01;&#xff01;&#xff01;&#xff01;实战训练&#xff01;&#xff01;&#xff01;&#xff01;-CSDN博客 OKhttp使用 OKhttp导包 <!-- ok的Http连接池 --><dependency><groupId>com.squareup.okhttp3</g…...

(计算机组成原理)期末复习

第一章 计算机的基本组成&#xff1a;硬件软件&#xff08;程序&#xff09;计算机系统 软件有系统软件&#xff08;系统管理工具&#xff09;&#xff0c;应用软件 计算机硬件&#xff1a;包括主机和外设&#xff0c;主机包括CPU和内存&#xff0c;***CPU由运算器和控制器所组…...

从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)

本文不仅细化了每一个步骤&#xff0c;实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别&#xff0c;做了详细介绍&#xff0c;尤其是add framework support部分。与此同时&#xff0c;针对控制台中文乱码问题&#xff0c;本文也给出了详细解…...

【Java从入门到放弃 之 Java程序基础】

Java程序基础 Java程序基础基本数据类型和变量数据类型变量赋值基本运算算术运算比较运算逻辑运算 Java程序基础 基本数据类型和变量 数据类型 对Java语言而言&#xff0c;有如下基本数据类型。 整数类型&#xff1a;有4种整型byte/short/int/long&#xff0c;它们占用的字…...

2024年11月26日Github流行趋势

项目名称&#xff1a;v2rayN 项目维护者&#xff1a;2dust yfdyh000 CGQAQ ShiinaRinne Lemonawa 项目介绍&#xff1a;一个支持Xray核心及其他功能的Windows和Linux图形用户界面客户端。 项目star数&#xff1a;70,383 项目fork数&#xff1a;11,602 项目名称&#xff1a;fre…...

相亲交友小程序项目介绍

一、项目背景 在当今快节奏的社会生活中&#xff0c;人们忙于工作和事业&#xff0c;社交圈子相对狭窄&#xff0c;寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式&#xff0c;在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…...

使用ENSP实现默认路由

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为2.2.2.1/24 ip address 2.2.2.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为1.…...

CSGO游戏搬砖党如何应对上海Major

大家最近都关注major比赛了吗&#xff1f;目前已经有不少顶尖CSGO战队来到了上海&#xff0c;备战即将到来的2024上海Major赛。本次比赛正赛将于11月30日开打&#xff0c;欧洲、美洲和亚太地区的24支顶尖战队通过两周的角逐&#xff0c;包括揭幕赛、淘汰赛以及决赛三种&#xf…...

【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器学习模型的构建和优化是一个复杂且耗时的过程,涉及特征工程、模型选择、超参数调优等多个环节。AutoML(Automated Machine Learning)旨在通过自动化的方式来简化这些流程,提高开发效率并提升模型表现。Au…...

go-zero(八) 中间件的使用

go-zero 中间件 一、中间件介绍 中间件&#xff08;Middleware&#xff09;是一个在请求和响应处理之间插入的程序或者函数&#xff0c;它可以用来处理、修改或者监控 HTTP 请求和响应的各个方面。 1.中间件的核心概念 请求拦截&#xff1a;中间件能够在请求到达目标处理器之…...

vim 如何高亮/取消高亮

高亮 &#xff1a;在ESC模式下使用 shift # 取消高亮&#xff1a;在ESC模式下输入英文输入 :nohl (no highlight)...

蓝桥杯练习题

目录 1.劲舞团 2.数字诗意 3.封闭图形个数 4.回文数组 欢迎 1.劲舞团 0劲舞团 - 蓝桥云课 #include <iostream> using namespace std; int main() {int num1,M0;long long c[1000000];int cnt0;string a,b ;while(cin>>a>>b>>c[cnt])//系统自动输入…...

【设计模式】创建型模式之单例模式(饿汉式 懒汉式 Golang实现)

定义 一个类只允许创建一个对象或实例&#xff0c;而且自行实例化并向整个系统提供该实例&#xff0c;这个类就是一个单例类&#xff0c;它提供全局访问的方法。这种设计模式叫单例设计模式&#xff0c;简称单例模式。 单例模式的要点&#xff1a; 某个类只能有一个实例必须…...

使用 Docker Compose 来编排部署LMTNR项目

使用 Docker Compose 来部署一个包含 Linux、MySQL、Tomcat、Nginx 和 Redis 的完整项目的例子。假设我们要部署一个简单的 Java Web 应用&#xff0c;并且使用 Nginx 作为反向代理服务器。 项目目录结构 首先需要确保 Docker 和docker-compose已经安装并正在运行。docker --v…...

创建HTTPS网站

每天&#xff0c;我们都会听到网络上发生身份盗窃和数据侵权的案例&#xff0c;这导致用户对自己访问的网站更加怀疑。他们开始更加了解自己将个人信息放在哪里以及信任哪些类型的网站。了解如何使网站使用HTTPS变得比以往任何时候都更加重要。 解读缩略词&#xff1a;HTTP与HT…...

以3D数字人AI产品赋能教育培训人才发展,魔珐科技亮相AI+教育创新与人才发展大会

11月20日&#xff0c;北京中关村国际创新中心迎来了“AI教育创新与人才发展大会暨首届北京数字人才发展大会”的盛大启幕。此次大会汇聚了培训、教育、科技、人才领域的专家学者、行业领袖及企业代表&#xff0c;共同探讨人工智能技术在教育培训领域的革新应用与数字人才培养体…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...