Tips
论文里的图是审稿人的第一印象。MATLAB 数值计算 + 科研绘图,Python 数据可视化两套工具链。知道什么时候用什么,画出来的图让审稿人眼前一亮。
- 科研图三条铁律:矢量格式、标注完整、配色无障碍(红绿色盲友好)
- 投稿前查期刊的 Figure Guidelines——字号、线宽、格式都有具体要求
- 数据 + 绘图脚本一起保存,审稿人要求改图时重新跑一遍而不是手动 P
- Python 用户推荐
sns.set_theme()一行美化全局样式 - MATLAB 矩阵运算不要写 for 循环——向量化运算比循环快几十倍
- 脚本开头加
clear; clc; close all;清空环境,避免上次运行的变量干扰 - 用
doc 函数名在 Command Window 直接打开函数文档 - MATLAB 的正版授权是 SEU 学生的福利,毕业前多利用
- 画框图/流程图用 draw.io 免费够用,Visio 不需要
MATLAB:数值计算与科研绘图
MATLAB 是工程领域的标准计算工具——矩阵运算、控制系统仿真(Simulink)、信号处理,以及强大的科研出图能力。SEU 已购买校园正版授权。
SEU 免费安装
- nic.seu.edu.cn → 正版软件 → MATLAB,用 SEU 邮箱注册 MathWorks 账号
- 下载安装(选核心 + Simulink + Control System Toolbox)
- 登录 → 选"东南大学"许可证
推荐工具箱(不需要一次全装——核心 + Simulink + Control System,其他需要时通过 Add-Ons 菜单安装):
| 工具箱 | 用途 |
|---|---|
| MATLAB | 核心功能 |
| Simulink | 图形化仿真建模 |
| Control System Toolbox | 控制系统设计分析 |
| Signal Processing Toolbox | 信号处理 |
| Optimization Toolbox | 优化求解 |
| Statistics and Machine Learning Toolbox | 统计与机器学习 |
| Robotics System Toolbox | 机器人算法与仿真 |
| Deep Learning Toolbox | 深度学习 |
MATLAB 基础语法速查
% 这是注释
% 变量与矩阵
a = 5; % 分号不显示结果
b = [1 2 3; 4 5 6]; % 2×3 矩阵
% 矩阵运算
A * B % 矩阵乘法
A .* B % 逐元素乘法
A' % 转置
inv(A) % 逆矩阵
eig(A) % 特征值
% 常用函数
linspace(0, 1, 100) % 生成100个等间距点
zeros(3, 4) % 3×4零矩阵
ones(5) % 5×5全1矩阵
eye(3) % 3×3单位矩阵
% 条件与循环
if x > 0
disp('positive');
else
disp('negative or zero');
end
for i = 1:10
disp(i);
end
% 函数定义(保存为 myfunc.m)
function result = myfunc(x, y)
result = x^2 + y^2;
end
Simulink 快速入门
Simulink 是 MATLAB 最独特的价值——图形化仿真建模,控制类课程和项目会频繁用到。Python 目前没有真正的 Simulink 替代品。
- MATLAB 工具栏点 Simulink 图标
Blank Model新建模型- 左侧 Library Browser 拖入模块(积分器、传递函数、示波器等)
- 连线 → 设置参数 → 点 Run 仿真
- 双击 Scope 模块查看波形
学习资源
| 资源 | 内容 |
|---|---|
| MATLAB Onramp(MATLAB 内免费) | 2 小时交互式入门教程 |
| Simulink Onramp(免费) | Simulink 交互式入门 |
| MathWorks 官方文档 | 最全的函数说明和示例 |
| B 站 "MATLAB 基础教程" | 中文讲解视频 |
| MATLAB Central | 官方社区,问答和代码分享 |
MATLAB 绘图的优势
| 优势 | 说明 |
|---|---|
| 出图质量高 | 矢量图导出,直接投期刊不用二次处理 |
| 公式到图形 | 符号计算 + 可视化无缝衔接 |
| Simulink 框图 | 控制系统领域的事实标准,Python 无替代品 |
| 期刊兼容 | 多数工程期刊提供 .fig / .m 模板 |
常用绘图场景
plot(x, y) # 二维线图
scatter(x, y) # 散点图
bar(x, y) # 柱状图
histogram(data) # 直方图
surf(X, Y, Z) # 三维曲面
contour(X, Y, Z) # 等高线
imagesc(matrix) # 热力图
MATLAB vs Python 怎么选
| 场景 | 推荐 |
|---|---|
| 控制系统仿真(Simulink) | MATLAB(Python 没有 Simulink 替代品) |
| 论文出图(矢量/期刊级) | MATLAB(导出 .eps/.pdf 更可控) |
| AI/机器学习/深度学习 | Python |
| 数据探索、快速可视化 | Python(matplotlib/seaborn 更灵活) |
| 矩阵计算、信号处理 | 两者都行,看导师组习惯 |
| 开源项目、需要部署 | Python |
| 课程要求 | 跟着课程走 |
Python 科研绘图
Python 是数据科学的主力语言,科研绘图生态成熟。三件套:matplotlib 打基础、seaborn 统计图、Plotly 可交互。
matplotlib:一切的基础
pip install matplotlib numpy
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.title('正弦与余弦')
plt.legend()
plt.savefig('figure.pdf', bbox_inches='tight') # 矢量导出
plt.show()
核心原则:写论文的图一律 savefig 导出为 .pdf 或 .eps(矢量),不要截图。位图用 .png 至少 300 dpi。
seaborn:统计图一行出
pip install seaborn
import seaborn as sns
sns.boxplot(data=df, x='group', y='value') # 箱线图
sns.heatmap(corr_matrix, annot=True) # 相关性热力图
sns.violinplot(data=df, x='category', y='metric') # 小提琴图
sns.pairplot(df) # 成对关系矩阵
seaborn 的默认样式比裸 matplotlib 好看很多。sns.set_theme() 一行切换到期刊级配色。
绘图工具速查
| 工具 | 一句话 | 适合 |
|---|---|---|
| MATLAB | 工程计算 + 出图一体 | 控制/信号/期刊论文 |
| matplotlib | Python 绑卡底库,什么都能画 | 所有场景的基础 |
| seaborn | 统计可视化,一行出图 | 数据分析/统计图 |
| Plotly | 可交互旋转缩放 | 探索数据、网页嵌入 |
| Origin | 实验数据出图传统工具 | 物理/化学/材料实验组 |
| draw.io | 免费框图/流程图 | 画模型架构、流程图 |
| Inkscape | 免费矢量图编辑 | 微调 PDF 导出图、拼图排版 |
AI 协作
AI 不能代替你决定画哪种图、数据怎么呈现,但能帮你写绘图代码。
- Python 出图:描述数据格式和想要的图类型 → AI 生成 Matplotlib/Seaborn 代码 → 跑一遍 → 微调配色、字号、图例位置
- MATLAB 出图:同样的思路——描述需求 → AI 生成
.m脚本 → 在 MATLAB 里跑 - 美化建议:截图给 AI → "这个图不够好看,给三个具体修改建议" → 改坐标轴范围、换配色、调字号
- 图转代码:看中别人的图(公开论文的图)→ 描述给 AI →"用 Python Matplotlib 复现这个风格"
- 报错调试:绘图代码报错 → 丢给 AI → 秒修
前提:你得会手动写最基本的 plt.plot() / plot()。AI 生成 90% 的代码,你改最后 10%。