如何将Python的matplotlib生成的图形导入Matlab?

4

我正在为一个研究项目处理一些数据,并使用Python编写所有脚本。我一直在使用Matplotlib创建图表以展示给我的主管。然而,他是一位忠实的MATLAB用户,他想让我发送MATLAB .fig文件而不是SVG图像。

我已经找遍了整个网络,但找不到任何可以完成这项工作的方法。有没有办法从Matplotlib导出.fig文件,将.svg文件转换为.fig文件或将.svg文件导入MATLAB?


2
我认为你在那个方向上会遇到很大的困难(.svg->.fig)。这些图形是否太详细,无法简单地使用导入到Matlab中的数据再次绘制它们?或者,至少可以使用Python将数据格式化为逗号分隔值的字符串,然后只需在两个括号中放置它们并在Matlab中使用它们吗? - Chris Gregg
1
我非常怀疑你能否导出为 .FIG 文件,因为这是 MATLAB 使用的专有二进制格式,用于存储其 GUI 和图形(在内部,我认为它们存储了重新创建绘图所需的所有数据和代码,而不仅仅是将它们保存为图像)。 - Amro
1
尽管我相信FIG文件v7.3格式是基于HDF5的... - Amro
1个回答

2

如果没有matlab的访问权限或经验,这可能有点棘手。正如Amro所述,.fig文件存储底层数据,而不仅仅是图像,你将很难从Python保存.fig文件。但是,有几件事情可能对你有帮助,它们是:

  • numpy/scipy可以读写matlab .mat文件
  • matplotlib绘图命令非常类似于/基于matlab,因此生成数据图的代码将几乎相同(除了圆括号/方括号和0/1基索引)。

我的方法是将数据写成.mat文件,然后将绘图命令放在一个脚本中,并将其交给您的主管-运气好的话,他应该可以根据该信息重新创建图表。

如果您可以访问Matlab进行测试/调试,我相信可能会创建一些代码,自动创建.mat文件和一个matlab .m文件,以重新创建图表。

Scipy网站上有一个漂亮的matlab/scipy等效命令列表。

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接