将Matplotlib图形另存为.pdf_tex

时间:2018-10-09 09:47:48

标签: python matplotlib latex inkscape

在Inkscape中,可以保存pdf文件以及生成pdf_tex文件,以将其自动格式化为Latex文件。 可以通过单击将扩展名指定为.pdf的保存后的复选框来指定。

我有兴趣直接从python脚本中以特定格式保存matplotlib数字。

这种可能性存在还是可以通过一些技巧来完成?

谢谢

1 个答案:

答案 0 :(得分:0)

一种选择是从matplotlib导出pdf,然后以编程方式使用inkscape,即通过命令行界面让它创建所需的格式。

import matplotlib.pyplot as plt

plt.bar(x=[1,2], height=[3,4], label="Bar")
plt.legend()
plt.xlabel("Label")
plt.title("title")

def savepdf_tex(fig, name, **kwargs):
    import subprocess, os
    fig.savefig("temp.pdf", format="pdf", **kwargs)
    incmd = ["inkscape", "temp.pdf", "--export-pdf={}.pdf".format(name),
             "--export-latex"] #"--export-ignore-filters",
    subprocess.check_output(incmd)
    os.remove("temp.pdf")


savepdf_tex(plt.gcf(), "latest")

plt.show()

还要注意,matplotlib可以保存为pgf格式。作为上述替代方案,绝对值得尝试。请参见this example,并在其后附加plt.savefig("filename.pgf")。在乳胶代码中,使用\input{filename.pgf}