将Matplotlib图形保存为.pdf_tex文件

3
在Inkscape中,可以勾选保存并将扩展名指定为.pdf,同时生成pdf_tex文件以便自动格式化成Latex文件。
我想直接从我的Python脚本中保存Matplotlib图形到这种特定的格式中。是否存在这种可能性或者有什么技巧可以做到呢?

这些是我在Inkscape中看到的选项。你指的是其中哪一个? - undefined
抱歉,我没有说明清楚。您可以打开一个文件,并在保存为PDF时,有一个选项可以生成一个.pdf_tex文件和一个.pdf文件。 - undefined
2个回答

1
一个选择是从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")添加到其中。在latex代码中使用\input{filename.pgf}

返回错误FileNotFoundError: [WinError 2] 系统找不到指定的文件 - undefined

1

作为matplotlib后端

几年前,我创建了一个matplotlib后端,专门支持此功能。但是,它只与较旧版本的matplotlib兼容,需要更新(我将感激任何贡献)。

直接从您的脚本中

@ImportanceOfBeingErnest 已经提到过这个解决方案。但是,如果该解决方案失败,请尝试使用--export-filename-o代替--export-pdf


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