0

我目前正在撰写一篇科学论文,并使用matplotlib生成大部分数字。我有一个使用makefile生成的管道,当我更新数据时,它会重新生成所有图。我的问题是这些数字是由多个面板组成的,其中一些面板应该包含我使用Adobe Illustrator创建的矢量插图。更新我的原始数据时,如何自动将图形与插图组合起来?我可以将矢量插图保存为光栅格式,然后使用matplotlib的imshow函数显示它们,但我希望输出是矢量以确保最佳的打印质量。如何自动将matplotlib图形与Adobe Illustrator矢量插图组合使用?

+1

你试过让所有的图片都在后端设置为SVG矢量格式? – MattDMo 2014-11-05 18:22:21

+0

Matplotlib无法导入SVG图像。 – tom10 2014-11-05 21:10:03

+0

@MattDMo是的,我可以将用matplotlib制作的部件导出为SVG,但是之后我需要另一个程序将它们与Illustrator图像结合 - 所以问题是我可以使用哪个程序来达到此目的?我可以使用matplotlib本身将图像组合在一起,但是正如tom10指出的那样,matplotlib无法导入使用illustrator制作的任何SVG图像。 – 2014-11-06 09:41:14

回答

0

一些更广泛的谷歌搜索后,我发现这个老message on the matplotlib mailing list

线程建议使用Python库PyX,这对我来说效果很好。

我可以节省插画图和matplotlib地块为.EPS文件,然后将它们组合是这样的:

import pyx 
c = pyx.canvas.canvas() 
c.insert(pyx.epsfile.epsfile(0, 0, "1.eps", align="tl")) 
c.insert(pyx.epsfile.epsfile(0,0,"2.eps", align="tr")) 
c.writeEPSfile("combined.eps")