Сохраните цифры matplotlib как .pdf_tex - PullRequest
0 голосов
/ 09 октября 2018

В Inkscape есть возможность сохранять pdf-файлы вместе с генерацией pdf_tex-файлов для автоматического форматирования в латексный файл.Это можно указать, установив флажок после нажатия кнопки «Сохранить», указав расширение в формате .pdf.

Я заинтересован в прямом сохранении из моего сценария на python фигур matplotlib в этом конкретном формате.

Существует ли такая возможность или ее можно сделать с помощью некоторых уловок?

Спасибо

1 Ответ

0 голосов
/ 10 октября 2018

Можно экспортировать PDF-файл из matplotlib, а затем использовать 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 формат.Это определенно стоит попробовать в качестве альтернативы вышесказанному.См. этот пример и добавьте plt.savefig("filename.pgf") к нему.В латексном коде используйте \input{filename.pgf}.

...