当前位置:首页>python>Matlab 和Python画图体验的区别

Matlab 和Python画图体验的区别

  • 2026-10-11 07:14:20
Matlab 和Python画图体验的区别

Matlab和Python绘图逻辑比较

因为课题需要,所以我Matlab和Python是常常混着用的,使用过程中就会发现Matlab和Python的绘图逻辑差别还是挺大的:

‍✦ Matlab绘制Figure的逻辑是实时交互,运行一行代码就更新图上的内容,不堵塞后续代码执行,这样就方便在终端输入代码就能不断补充完善Figure,所以用Matlab绘图更倾向在命令行直接改图,之后再汇总代码;

‍✦ 而Python绘图默认是先缓存,最后再输出,并且一旦输出显示Figure窗口后,就默认堵塞后续代码执行,并清除前面的缓存,要改图就必须重新完整跑一次绘图代码,更倾向在py脚本或者ipynb文件里不断调整代码一次次重新运行来改图。

比如Matlab终端输入这样的代码,就能立马绘制出了Figure

x = 0:0.1:2*pi;y = sin(x);plot(x, y, 'r-', 'LineWidth', 2);

然后我想要再加标签,就再输入下面代码,就能在原图的基础上进行补充

xlabel('x');ylabel('sin(x)');title('正弦波');

而Python绘图逻辑是倾向于先缓存再最终输出的

终端输入

import matplotlib.pyplot as pltimport numpy as npx = np.arange(0, 2*np.pi, 0.1)y = np.sin(x)plt.plot(x, y, 'r-', linewidth=2)

必须添加plt.show()才能绘图展示,否则不显示

而一旦plt.show()显示出图后,就会自动清空缓冲区,导致没法在终端在原来的基础上继续画图

plt.xlabel("x")plt.ylabel("sin(x)")plt.title("正弦波")plt.show()

并且plt.show()默认画图窗口会阻塞程序运行,必须关闭绘图窗口才能继续运行。这两个问题就非常影响修改图的流畅体验。

虽然也能用plt.show(block=False)或plt.ion()来实现后台绘图和不清空缓存区,但是这样依然比Matlab麻烦很多,所以日常用Python每次改图,都习惯把绘图代码再完整跑一次。

Python matplotlib绘图默认不支持显示中文,而Matlab绘图支持显示中文

import matplotlib.pyplot as pltimport numpy as npx = np.arange(0, 2*np.pi, 0.1)y = np.sin(x)plt.plot(x, y, 'r-', linewidth=2)plt.xlabel("x")plt.ylabel("sin(x)")plt.title("正弦波")plt.show()

标题无法显示中文

需要额外设置字体

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签

Matlab绘图的便利

Matlab Figure窗口

Matlab的Figure窗口可以直接编辑图上的任何元素,调整宽高比例、改颜色、改字体和文字大小、添加箭头注释等等,就不需要去记一些绘图代码,鼠标点点就能完成绘图的美化,并且可以基于窗口修改的内容再生成代码。此外,除了能把Figure保存为常规的png、pdf等图片格式外,还能保存为.fig文件,之后如果需要修改图,直接双击.fig文件即可再用Figure窗口打开这个图,再进行编辑,不需要再重新跑一次代码来生图

而Python的matplotlib的绘图窗口就简陋的多,只能简单查看图和保存图

Matlab可以像excel一样直接绘图查看变量分布

打开变量内容,选中一行或者一列,点击顶部的绘图类型

就能直接出图

相关笔记

‍✦ Python 如何调用 Matlab 代码

‍✦ Matlab 2026a 发布!有哪些更新内容?

‍✦ Matlab 如何绘制滚动数据(类似示波器)

‍✦ Matlab 统一Figure大小的正确姿势:统一有legend和无legend的图大小

‍✦ Matlab 如何绘制显著性差异标记

‍✦ Matlab 科研绘图规范和绘图脚本的管理技巧

‍✦ 2026年,Python开发我用uv!

‍

最新文章

随机文章