В настоящее время я пишу научную статью и получаю большую часть рисунков, используя matplotlib. У меня есть конвейер, настроенный с использованием make-файла, который восстанавливает все мои графики всякий раз, когда я обновляю данные. Моя проблема заключается в том, что цифры состоят из нескольких панелей, и некоторые из этих панелей должны содержать векторные иллюстрации, которые я создал с помощью Adobe Illustrator. Как я могу автоматически комбинировать графики с иллюстрациями при обновлении исходных данных? Я мог бы сохранить векторные иллюстрации в растровом формате, а затем отобразить их с помощью функции matplotlib imshow
, но я хочу, чтобы результат был вектором, чтобы обеспечить наилучшее качество печати.Как я могу автоматически комбинировать графики matplotlib с векторными иллюстрациями Adobe Illustrator?
0
A
ответ
0
После некоторого более обширного Googling я нашел этот старый message on the matplotlib mailing list:
Нить предлагает использовать библиотеку питона 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")
Вы пробовали настройки вашего бэкэнд SVG, так что все ваши изображения находятся в векторный формат? – MattDMo
У Matplotlib нет возможности импортировать изображения SVG. – tom10
@MattDMo да, я могу экспортировать детали, сделанные с помощью matplotlib, как SVG, но тогда мне нужна другая программа, чтобы объединить их с изображениями иллюстратора - так что вопрос будет какой программой я могу использовать для этой цели? Я мог комбинировать изображения вместе, используя matplotlib, но, как отметил tom10, matplotlib не может импортировать изображения SVG, созданные мной с помощью иллюстратора. –